{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Setup imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "id": "ZejZZonxwCMH",
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MONAI version: 1.4.dev2421\n",
      "Numpy version: 1.26.4\n",
      "Pytorch version: 2.3.0+cu121\n",
      "MONAI flags: HAS_EXT = False, USE_COMPILED = False, USE_META_DICT = False\n",
      "MONAI rev id: 1070036ea3c30176fc82cfb15952387bed8b8a90\n",
      "MONAI __file__: /home/<username>/.local/lib/python3.10/site-packages/monai/__init__.py\n",
      "\n",
      "Optional dependencies:\n",
      "Pytorch Ignite version: 0.4.11\n",
      "ITK version: NOT INSTALLED or UNKNOWN VERSION.\n",
      "Nibabel version: 5.2.1\n",
      "scikit-image version: 0.23.2\n",
      "scipy version: 1.13.0\n",
      "Pillow version: 10.3.0\n",
      "Tensorboard version: 2.16.2\n",
      "gdown version: 5.2.0\n",
      "TorchVision version: 0.18.0+cu121\n",
      "tqdm version: 4.66.4\n",
      "lmdb version: NOT INSTALLED or UNKNOWN VERSION.\n",
      "psutil version: 5.9.8\n",
      "pandas version: 2.2.2\n",
      "einops version: 0.8.0\n",
      "transformers version: NOT INSTALLED or UNKNOWN VERSION.\n",
      "mlflow version: NOT INSTALLED or UNKNOWN VERSION.\n",
      "pynrrd version: NOT INSTALLED or UNKNOWN VERSION.\n",
      "clearml version: NOT INSTALLED or UNKNOWN VERSION.\n",
      "\n",
      "For details about installing the optional dependencies, please visit:\n",
      "    https://docs.monai.io/en/latest/installation.html#installing-the-recommended-dependencies\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from monai.utils import first, set_determinism\n",
    "from monai.transforms import (\n",
    "    AsDiscrete,\n",
    "    AsDiscreted,\n",
    "    EnsureChannelFirstd,\n",
    "    Compose,\n",
    "    CropForegroundd,\n",
    "    LoadImaged,\n",
    "    Orientationd,\n",
    "    RandCropByPosNegLabeld,\n",
    "    ScaleIntensityRanged,\n",
    "    Spacingd,\n",
    "    Invertd,\n",
    ")\n",
    "from monai.handlers.utils import from_engine\n",
    "# https://docs.monai.io/en/stable/networks.html#nets\n",
    "from monai.networks.nets import UNet,AttentionUnet, DynUNet, SegResNet, VNet, SegResNetVAE, UNETR\n",
    "from monai.networks.layers import Norm\n",
    "from monai.metrics import DiceMetric\n",
    "from monai.losses import DiceLoss\n",
    "from monai.inferers import sliding_window_inference\n",
    "from monai.data import CacheDataset, DataLoader, Dataset, decollate_batch\n",
    "from monai.config import print_config\n",
    "from monai.apps import download_and_extract\n",
    "import aim\n",
    "from aim.pytorch import track_gradients_dists, track_params_dists\n",
    "import torch\n",
    "import matplotlib.pyplot as plt\n",
    "import tempfile\n",
    "import shutil\n",
    "import os\n",
    "import glob\n",
    "\n",
    "print_config()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "w3EPRPqBwCMN"
   },
   "source": [
    "## Set MSD Spleen dataset path"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "id": "lVZr7-kBwCMO"
   },
   "outputs": [],
   "source": [
    "root_dir = '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/'\n",
    "data_dir = '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart'\n",
    "train_images = sorted(glob.glob(os.path.join(data_dir, \"imagesTr\", \"*.nii.gz\")))\n",
    "train_labels = sorted(glob.glob(os.path.join(data_dir, \"labelsTr\", \"*.nii.gz\")))\n",
    "data_dicts = [{\"image\": image_name, \"label\": label_name} for image_name, label_name in zip(train_images, train_labels)]\n",
    "train_files, val_files = data_dicts[:-9], data_dicts[-9:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'image': '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart/imagesTr/la_019_0000.nii.gz',\n",
       "  'label': '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart/labelsTr/la_019.nii.gz'},\n",
       " {'image': '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart/imagesTr/la_020_0000.nii.gz',\n",
       "  'label': '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart/labelsTr/la_020.nii.gz'},\n",
       " {'image': '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart/imagesTr/la_021_0000.nii.gz',\n",
       "  'label': '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart/labelsTr/la_021.nii.gz'},\n",
       " {'image': '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart/imagesTr/la_022_0000.nii.gz',\n",
       "  'label': '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart/labelsTr/la_022.nii.gz'},\n",
       " {'image': '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart/imagesTr/la_023_0000.nii.gz',\n",
       "  'label': '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart/labelsTr/la_023.nii.gz'},\n",
       " {'image': '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart/imagesTr/la_024_0000.nii.gz',\n",
       "  'label': '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart/labelsTr/la_024.nii.gz'},\n",
       " {'image': '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart/imagesTr/la_026_0000.nii.gz',\n",
       "  'label': '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart/labelsTr/la_026.nii.gz'},\n",
       " {'image': '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart/imagesTr/la_029_0000.nii.gz',\n",
       "  'label': '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart/labelsTr/la_029.nii.gz'},\n",
       " {'image': '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart/imagesTr/la_030_0000.nii.gz',\n",
       "  'label': '/mnt/datawow/lyl/models/nnUNet-master/nnUNetFrame/DATASET/nnUNet_raw/nnUNet_raw_data/Task002_Heart/labelsTr/la_030.nii.gz'}]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "val_files"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "Q1Wi6EtAwCMO"
   },
   "source": [
    "## Set deterministic training for reproducibility"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "id": "dr8HRsffwCMO"
   },
   "outputs": [],
   "source": [
    "set_determinism(seed=1645)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "13ZnlKGCwCMO"
   },
   "source": [
    "## Setup transforms for training and validation\n",
    "\n",
    "Here we use several transforms to augment the dataset:\n",
    "1. `LoadImaged` loads the spleen CT images and labels from NIfTI format files.\n",
    "1. `EnsureChannelFirstd` ensures the original data to construct \"channel first\" shape.\n",
    "1. `Spacingd` adjusts the spacing by `pixdim=(1.5, 1.5, 2.)` based on the affine matrix.\n",
    "1. `Orientationd` unifies the data orientation based on the affine matrix.\n",
    "1. `ScaleIntensityRanged` extracts intensity range [-57, 164] and scales to [0, 1].\n",
    "1. `CropForegroundd` removes all zero borders to focus on the valid body area of the images and labels.\n",
    "1. `RandCropByPosNegLabeld` randomly crop patch samples from big image based on pos / neg ratio.  \n",
    "The image centers of negative samples must be in valid body area.\n",
    "1. `RandAffined` efficiently performs `rotate`, `scale`, `shear`, `translate`, etc. together based on PyTorch affine transform.\n",
    "1. `EnsureTyped` converts the numpy array to PyTorch Tensor for further steps."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "id": "jf7siKPOwCMO"
   },
   "outputs": [],
   "source": [
    "train_transforms = Compose(\n",
    "    [\n",
    "        LoadImaged(keys=[\"image\", \"label\"]),\n",
    "        EnsureChannelFirstd(keys=[\"image\", \"label\"]),\n",
    "        ScaleIntensityRanged(\n",
    "            keys=[\"image\"],\n",
    "            a_min=-57,\n",
    "            a_max=164,\n",
    "            b_min=0.0,\n",
    "            b_max=1.0,\n",
    "            clip=True,\n",
    "        ),\n",
    "        CropForegroundd(keys=[\"image\", \"label\"], source_key=\"image\"),\n",
    "        Orientationd(keys=[\"image\", \"label\"], axcodes=\"RAS\"),\n",
    "        Spacingd(keys=[\"image\", \"label\"], pixdim=(1.5, 1.5, 2.0), mode=(\"bilinear\", \"nearest\")),\n",
    "        RandCropByPosNegLabeld(\n",
    "            keys=[\"image\", \"label\"],\n",
    "            label_key=\"label\",\n",
    "            spatial_size=(96, 96, 32),\n",
    "            pos=1,\n",
    "            neg=1,\n",
    "            num_samples=4,\n",
    "            image_key=\"image\",\n",
    "            image_threshold=0,\n",
    "        ),\n",
    "        \n",
    "        # user can also add other random transforms\n",
    "        # RandAffined(\n",
    "        #     keys=['image', 'label'],\n",
    "        #     mode=('bilinear', 'nearest'),\n",
    "        #     prob=1.0, spatial_size=(96, 96, 96),\n",
    "        #     rotate_range=(0, 0, np.pi/15),\n",
    "        #     scale_range=(0.1, 0.1, 0.1)),\n",
    "    ]\n",
    ")\n",
    "val_transforms = Compose(\n",
    "    [\n",
    "        LoadImaged(keys=[\"image\", \"label\"]),\n",
    "        EnsureChannelFirstd(keys=[\"image\", \"label\"]),\n",
    "        ScaleIntensityRanged(\n",
    "            keys=[\"image\"],\n",
    "            a_min=-57,\n",
    "            a_max=164,\n",
    "            b_min=0.0,\n",
    "            b_max=1.0,\n",
    "            clip=True,\n",
    "        ),\n",
    "        CropForegroundd(keys=[\"image\", \"label\"], source_key=\"image\"),\n",
    "        Orientationd(keys=[\"image\", \"label\"], axcodes=\"RAS\"),\n",
    "        Spacingd(keys=[\"image\", \"label\"], pixdim=(1.5, 1.5, 2.0), mode=(\"bilinear\", \"nearest\")),\n",
    "    ]\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "au4rmQfDwCMP"
   },
   "source": [
    "## Check transforms in DataLoader"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 408
    },
    "id": "qqcFPuVkwCMP",
    "outputId": "4189428e-4569-4453-e379-df4466208c85",
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "image shape: torch.Size([267, 267, 69]), label shape: torch.Size([267, 267, 69])\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1200x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "check_ds = Dataset(data=val_files, transform=val_transforms)\n",
    "check_loader = DataLoader(check_ds, batch_size=1)\n",
    "check_data = first(check_loader)\n",
    "image, label = (check_data[\"image\"][0][0], check_data[\"label\"][0][0])\n",
    "print(f\"image shape: {image.shape}, label shape: {label.shape}\")\n",
    "# plot the slice [:, :, 80]\n",
    "\n",
    "plt.figure(\"check\", (12, 6))\n",
    "plt.subplot(1, 2, 1)\n",
    "plt.title(\"image\")\n",
    "plt.imshow(image[:, :, 30], cmap=\"gray\")\n",
    "plt.subplot(1, 2, 2)\n",
    "plt.title(\"label\")\n",
    "plt.imshow(label[:, :, 30])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "D0_EHJ7FwCMQ"
   },
   "source": [
    "## Define CacheDataset and DataLoader for training and validation\n",
    "\n",
    "Here we use CacheDataset to accelerate training and validation process, it's 10x faster than the regular Dataset.  \n",
    "To achieve best performance, set `cache_rate=1.0` to cache all the data, if memory is not enough, set lower value.  \n",
    "Users can also set `cache_num` instead of `cache_rate`, will use the minimum value of the 2 settings.  \n",
    "And set `num_workers` to enable multi-threads during caching.  \n",
    "If want to to try the regular Dataset, just change to use the commented code below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "kKA4gboPwCMQ",
    "outputId": "2496df99-8445-4c70-a3b1-721f9e552b34",
    "tags": []
   },
   "outputs": [],
   "source": [
    "# train_ds = CacheDataset(data=train_files, transform=train_transforms, cache_rate=1.0, num_workers=4)\n",
    "train_ds = Dataset(data=train_files, transform=train_transforms)\n",
    "\n",
    "# use batch_size=2 to load images and use RandCropByPosNegLabeld\n",
    "# to generate 2 x 4 images for network training\n",
    "train_loader = DataLoader(train_ds, batch_size=2, shuffle=True, num_workers=4)\n",
    "\n",
    "# val_ds = CacheDataset(data=val_files, transform=val_transforms, cache_rate=1.0, num_workers=4)\n",
    "val_ds = Dataset(data=val_files, transform=val_transforms)\n",
    "val_loader = DataLoader(val_ds, batch_size=1, num_workers=4)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "nOgy1x1BwCMQ"
   },
   "source": [
    "## Create Model, Loss, Optimizer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataset_name = 'Task002_Heart'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "id": "VM-5g2bmwCMQ"
   },
   "outputs": [],
   "source": [
    "# standard PyTorch program style: create UNet, DiceLoss and Adam optimizer\n",
    "device = torch.device(\"cuda:0\")\n",
    "\n",
    "UNet_meatdata = {\n",
    "    \"spatial_dims\": 3,\n",
    "    \"in_channels\": 1,\n",
    "    \"out_channels\": 2,\n",
    "     \"strides\": (2, 2, 2, 2),\n",
    "    \"num_res_units\": 2,\n",
    "    \"channels\":(4, 8, 16, 32, 64),\n",
    "    \"norm\": Norm.BATCH,\n",
    "}\n",
    "\n",
    "model = UNet(**UNet_meatdata).to(device)\n",
    "loss_function = DiceLoss(to_onehot_y=True, softmax=True)\n",
    "loss_type = \"DiceLoss\"\n",
    "optimizer = torch.optim.Adam(model.parameters(), 1e-4)\n",
    "dice_metric = DiceMetric(include_background=False, reduction=\"mean\")\n",
    "\n",
    "Optimizer_metadata = {}\n",
    "for ind, param_group in enumerate(optimizer.param_groups):\n",
    "    optim_meta_keys = list(param_group.keys())\n",
    "    Optimizer_metadata[f\"param_group_{ind}\"] = {\n",
    "        key: value for (key, value) in param_group.items() if \"params\" not in key\n",
    "    }\n",
    "aim_run = aim.Run()\n",
    "aim_run.name = f'{dataset_name}_{model.__class__.__name__}'\n",
    "# log model metadata\n",
    "aim_run[f\"{model.__class__.__name__}_meatdata\"] = UNet_meatdata\n",
    "# log optimizer metadata\n",
    "aim_run[\"Optimizer_metadata\"] = Optimizer_metadata"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "# standard PyTorch program style: create UNet, DiceLoss and Adam optimizer\n",
    "device = torch.device(\"cuda:0\")\n",
    "\n",
    "AttentionUnet_meatdata = {\n",
    "    \"spatial_dims\": 3,\n",
    "    \"in_channels\": 1,\n",
    "    \"out_channels\": 2,\n",
    "    \"channels\":(4, 8, 16, 32, 64),\n",
    "    \"strides\": (2, 2, 2, 2),\n",
    "    \"kernel_size\": 3,\n",
    "    \"up_kernel_size\": 3,\n",
    "    \"dropout\": 0.5,\n",
    "}\n",
    "\n",
    "model = AttentionUnet(**AttentionUnet_meatdata).to(device)\n",
    "loss_function = DiceLoss(to_onehot_y=True, softmax=True)\n",
    "loss_type = \"DiceLoss\"\n",
    "optimizer = torch.optim.Adam(model.parameters(), 1e-4)\n",
    "dice_metric = DiceMetric(include_background=False, reduction=\"mean\")\n",
    "\n",
    "Optimizer_metadata = {}\n",
    "for ind, param_group in enumerate(optimizer.param_groups):\n",
    "    optim_meta_keys = list(param_group.keys())\n",
    "    Optimizer_metadata[f\"param_group_{ind}\"] = {\n",
    "        key: value for (key, value) in param_group.items() if \"params\" not in key\n",
    "    }\n",
    "aim_run = aim.Run()\n",
    "aim_run.name = f'{dataset_name}_{model.__class__.__name__}'\n",
    "# log model metadata\n",
    "aim_run[f\"{model.__class__.__name__}_meatdata\"] = UNet_meatdata\n",
    "# log optimizer metadata\n",
    "aim_run[\"Optimizer_metadata\"] = Optimizer_metadata"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "ename": "RuntimeError",
     "evalue": "CUDA error: out of memory\nCUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.\nFor debugging consider passing CUDA_LAUNCH_BLOCKING=1.\nCompile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.\n",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mRuntimeError\u001b[0m                              Traceback (most recent call last)",
      "Cell \u001b[0;32mIn[28], line 21\u001b[0m\n\u001b[1;32m      2\u001b[0m device \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39mdevice(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcuda:0\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m      4\u001b[0m DynUNet_meatdata \u001b[38;5;241m=\u001b[39m {\n\u001b[1;32m      5\u001b[0m     \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mspatial_dims\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;241m3\u001b[39m,\n\u001b[1;32m      6\u001b[0m     \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124min_channels\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;241m1\u001b[39m,\n\u001b[0;32m   (...)\u001b[0m\n\u001b[1;32m     18\u001b[0m     \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtrans_bias\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m     19\u001b[0m }\n\u001b[0;32m---> 21\u001b[0m model \u001b[38;5;241m=\u001b[39m \u001b[43mDynUNet\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mDynUNet_meatdata\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdevice\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m     22\u001b[0m loss_function \u001b[38;5;241m=\u001b[39m DiceLoss(to_onehot_y\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m, softmax\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[1;32m     23\u001b[0m loss_type \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDiceLoss\u001b[39m\u001b[38;5;124m\"\u001b[39m\n",
      "File \u001b[0;32m~/.local/lib/python3.10/site-packages/torch/nn/modules/module.py:1173\u001b[0m, in \u001b[0;36mModule.to\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1170\u001b[0m         \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m   1171\u001b[0m             \u001b[38;5;28;01mraise\u001b[39;00m\n\u001b[0;32m-> 1173\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_apply\u001b[49m\u001b[43m(\u001b[49m\u001b[43mconvert\u001b[49m\u001b[43m)\u001b[49m\n",
      "File \u001b[0;32m~/.local/lib/python3.10/site-packages/torch/nn/modules/module.py:779\u001b[0m, in \u001b[0;36mModule._apply\u001b[0;34m(self, fn, recurse)\u001b[0m\n\u001b[1;32m    777\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m recurse:\n\u001b[1;32m    778\u001b[0m     \u001b[38;5;28;01mfor\u001b[39;00m module \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mchildren():\n\u001b[0;32m--> 779\u001b[0m         \u001b[43mmodule\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_apply\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfn\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    781\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcompute_should_use_set_data\u001b[39m(tensor, tensor_applied):\n\u001b[1;32m    782\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m torch\u001b[38;5;241m.\u001b[39m_has_compatible_shallow_copy_type(tensor, tensor_applied):\n\u001b[1;32m    783\u001b[0m         \u001b[38;5;66;03m# If the new tensor has compatible tensor type as the existing tensor,\u001b[39;00m\n\u001b[1;32m    784\u001b[0m         \u001b[38;5;66;03m# the current behavior is to change the tensor in-place using `.data =`,\u001b[39;00m\n\u001b[0;32m   (...)\u001b[0m\n\u001b[1;32m    789\u001b[0m         \u001b[38;5;66;03m# global flag to let the user control whether they want the future\u001b[39;00m\n\u001b[1;32m    790\u001b[0m         \u001b[38;5;66;03m# behavior of overwriting the existing tensor or not.\u001b[39;00m\n",
      "File \u001b[0;32m~/.local/lib/python3.10/site-packages/torch/nn/modules/module.py:779\u001b[0m, in \u001b[0;36mModule._apply\u001b[0;34m(self, fn, recurse)\u001b[0m\n\u001b[1;32m    777\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m recurse:\n\u001b[1;32m    778\u001b[0m     \u001b[38;5;28;01mfor\u001b[39;00m module \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mchildren():\n\u001b[0;32m--> 779\u001b[0m         \u001b[43mmodule\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_apply\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfn\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    781\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcompute_should_use_set_data\u001b[39m(tensor, tensor_applied):\n\u001b[1;32m    782\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m torch\u001b[38;5;241m.\u001b[39m_has_compatible_shallow_copy_type(tensor, tensor_applied):\n\u001b[1;32m    783\u001b[0m         \u001b[38;5;66;03m# If the new tensor has compatible tensor type as the existing tensor,\u001b[39;00m\n\u001b[1;32m    784\u001b[0m         \u001b[38;5;66;03m# the current behavior is to change the tensor in-place using `.data =`,\u001b[39;00m\n\u001b[0;32m   (...)\u001b[0m\n\u001b[1;32m    789\u001b[0m         \u001b[38;5;66;03m# global flag to let the user control whether they want the future\u001b[39;00m\n\u001b[1;32m    790\u001b[0m         \u001b[38;5;66;03m# behavior of overwriting the existing tensor or not.\u001b[39;00m\n",
      "File \u001b[0;32m~/.local/lib/python3.10/site-packages/torch/nn/modules/module.py:779\u001b[0m, in \u001b[0;36mModule._apply\u001b[0;34m(self, fn, recurse)\u001b[0m\n\u001b[1;32m    777\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m recurse:\n\u001b[1;32m    778\u001b[0m     \u001b[38;5;28;01mfor\u001b[39;00m module \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mchildren():\n\u001b[0;32m--> 779\u001b[0m         \u001b[43mmodule\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_apply\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfn\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    781\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcompute_should_use_set_data\u001b[39m(tensor, tensor_applied):\n\u001b[1;32m    782\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m torch\u001b[38;5;241m.\u001b[39m_has_compatible_shallow_copy_type(tensor, tensor_applied):\n\u001b[1;32m    783\u001b[0m         \u001b[38;5;66;03m# If the new tensor has compatible tensor type as the existing tensor,\u001b[39;00m\n\u001b[1;32m    784\u001b[0m         \u001b[38;5;66;03m# the current behavior is to change the tensor in-place using `.data =`,\u001b[39;00m\n\u001b[0;32m   (...)\u001b[0m\n\u001b[1;32m    789\u001b[0m         \u001b[38;5;66;03m# global flag to let the user control whether they want the future\u001b[39;00m\n\u001b[1;32m    790\u001b[0m         \u001b[38;5;66;03m# behavior of overwriting the existing tensor or not.\u001b[39;00m\n",
      "File \u001b[0;32m~/.local/lib/python3.10/site-packages/torch/nn/modules/module.py:804\u001b[0m, in \u001b[0;36mModule._apply\u001b[0;34m(self, fn, recurse)\u001b[0m\n\u001b[1;32m    800\u001b[0m \u001b[38;5;66;03m# Tensors stored in modules are graph leaves, and we don't want to\u001b[39;00m\n\u001b[1;32m    801\u001b[0m \u001b[38;5;66;03m# track autograd history of `param_applied`, so we have to use\u001b[39;00m\n\u001b[1;32m    802\u001b[0m \u001b[38;5;66;03m# `with torch.no_grad():`\u001b[39;00m\n\u001b[1;32m    803\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m torch\u001b[38;5;241m.\u001b[39mno_grad():\n\u001b[0;32m--> 804\u001b[0m     param_applied \u001b[38;5;241m=\u001b[39m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[43mparam\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    805\u001b[0m p_should_use_set_data \u001b[38;5;241m=\u001b[39m compute_should_use_set_data(param, param_applied)\n\u001b[1;32m    807\u001b[0m \u001b[38;5;66;03m# subclasses may have multiple child tensors so we need to use swap_tensors\u001b[39;00m\n",
      "File \u001b[0;32m~/.local/lib/python3.10/site-packages/torch/nn/modules/module.py:1159\u001b[0m, in \u001b[0;36mModule.to.<locals>.convert\u001b[0;34m(t)\u001b[0m\n\u001b[1;32m   1152\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m convert_to_format \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m t\u001b[38;5;241m.\u001b[39mdim() \u001b[38;5;129;01min\u001b[39;00m (\u001b[38;5;241m4\u001b[39m, \u001b[38;5;241m5\u001b[39m):\n\u001b[1;32m   1153\u001b[0m         \u001b[38;5;28;01mreturn\u001b[39;00m t\u001b[38;5;241m.\u001b[39mto(\n\u001b[1;32m   1154\u001b[0m             device,\n\u001b[1;32m   1155\u001b[0m             dtype \u001b[38;5;28;01mif\u001b[39;00m t\u001b[38;5;241m.\u001b[39mis_floating_point() \u001b[38;5;129;01mor\u001b[39;00m t\u001b[38;5;241m.\u001b[39mis_complex() \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m   1156\u001b[0m             non_blocking,\n\u001b[1;32m   1157\u001b[0m             memory_format\u001b[38;5;241m=\u001b[39mconvert_to_format,\n\u001b[1;32m   1158\u001b[0m         )\n\u001b[0;32m-> 1159\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m   1160\u001b[0m \u001b[43m        \u001b[49m\u001b[43mdevice\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m   1161\u001b[0m \u001b[43m        \u001b[49m\u001b[43mdtype\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mis_floating_point\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mis_complex\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m   1162\u001b[0m \u001b[43m        \u001b[49m\u001b[43mnon_blocking\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m   1163\u001b[0m \u001b[43m    \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   1164\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m   1165\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mstr\u001b[39m(e) \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCannot copy out of meta tensor; no data!\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n",
      "\u001b[0;31mRuntimeError\u001b[0m: CUDA error: out of memory\nCUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.\nFor debugging consider passing CUDA_LAUNCH_BLOCKING=1.\nCompile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.\n"
     ]
    }
   ],
   "source": [
    "# standard PyTorch program style: create UNet, DiceLoss and Adam optimizer\n",
    "device = torch.device(\"cuda:0\")\n",
    "\n",
    "DynUNet_meatdata = {\n",
    "    \"spatial_dims\": 3,\n",
    "    \"in_channels\": 1,\n",
    "    \"out_channels\": 2,\n",
    "    \"kernel_size\": (3,3,3,3),\n",
    "    \"strides\": (2, 2, 2, 2),\n",
    "    \"upsample_kernel_size\": (3,3,3,3),\n",
    "    \"filters\":(16,16,16,16),\n",
    "    \"dropout\": 0.5,\n",
    "    \"norm_name\":\"INSTANCE\",\n",
    "    \"act_name\": \"leakyrelu\", \n",
    "    \"deep_supervision\": False,\n",
    "    \"deep_supr_num\":1,\n",
    "    \"res_block\": False,\n",
    "    \"trans_bias\": False,\n",
    "}\n",
    "\n",
    "model = DynUNet(**DynUNet_meatdata).to(device)\n",
    "loss_function = DiceLoss(to_onehot_y=True, softmax=True)\n",
    "loss_type = \"DiceLoss\"\n",
    "optimizer = torch.optim.Adam(model.parameters(), 1e-4)\n",
    "dice_metric = DiceMetric(include_background=False, reduction=\"mean\")\n",
    "\n",
    "Optimizer_metadata = {}\n",
    "for ind, param_group in enumerate(optimizer.param_groups):\n",
    "    optim_meta_keys = list(param_group.keys())\n",
    "    Optimizer_metadata[f\"param_group_{ind}\"] = {\n",
    "        key: value for (key, value) in param_group.items() if \"params\" not in key\n",
    "    }\n",
    "aim_run = aim.Run()\n",
    "aim_run.name = f'{dataset_name}_{model.__class__.__name__}'\n",
    "# log model metadata\n",
    "aim_run[f\"{model.__class__.__name__}_meatdata\"] = UNet_meatdata\n",
    "# log optimizer metadata\n",
    "aim_run[\"Optimizer_metadata\"] = Optimizer_metadata"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "384.0"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "3072/2/2/2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "id": "VM-5g2bmwCMQ"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Task002_Heart_UNETR\n"
     ]
    }
   ],
   "source": [
    "# standard PyTorch program style: create UNet, DiceLoss and Adam optimizer\n",
    "device = torch.device(\"cuda:0\")\n",
    "\n",
    "net_metadata = {\n",
    "    \"spatial_dims\": 3,\n",
    "    \"in_channels\": 1,\n",
    "    \"out_channels\": 2,\n",
    "    \"img_size\": (96, 96, 32),\n",
    "    \"mlp_dim\": 3072\n",
    "    #  \"strides\": (2, 2, 2, 2),\n",
    "    # \"num_res_units\": 2,\n",
    "    # \"channels\":(4, 8, 16, 32, 64),\n",
    "    # \"norm\": Norm.BATCH,\n",
    "}\n",
    "\n",
    "model = UNETR(**net_metadata).to(device)\n",
    "loss_function = DiceLoss(to_onehot_y=True, softmax=True)\n",
    "loss_type = \"DiceLoss\"\n",
    "optimizer = torch.optim.Adam(model.parameters(), 1e-4)\n",
    "dice_metric = DiceMetric(include_background=False, reduction=\"mean\")\n",
    "\n",
    "Optimizer_metadata = {}\n",
    "for ind, param_group in enumerate(optimizer.param_groups):\n",
    "    optim_meta_keys = list(param_group.keys())\n",
    "    Optimizer_metadata[f\"param_group_{ind}\"] = {\n",
    "        key: value for (key, value) in param_group.items() if \"params\" not in key\n",
    "    }\n",
    "aim_run = aim.Run()\n",
    "aim_run.name = f'{dataset_name}_{model.__class__.__name__}'\n",
    "# log model metadata\n",
    "aim_run[f\"{model.__class__.__name__}_meatdata\"] = net_metadata\n",
    "# log optimizer metadata\n",
    "aim_run[\"Optimizer_metadata\"] = Optimizer_metadata\n",
    "print(aim_run.name)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "4nD1pAY-wCMR"
   },
   "source": [
    "## Execute a typical PyTorch training process"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([8, 1, 96, 96, 32]) torch.Size([8, 1, 96, 96, 32])\n",
      "torch.Size([8, 1, 96, 96, 32]) torch.Size([8, 1, 96, 96, 32])\n",
      "torch.Size([8, 1, 96, 96, 32]) torch.Size([8, 1, 96, 96, 32])\n",
      "torch.Size([8, 1, 96, 96, 32]) torch.Size([8, 1, 96, 96, 32])\n",
      "torch.Size([8, 1, 96, 96, 32]) torch.Size([8, 1, 96, 96, 32])\n",
      "torch.Size([4, 1, 96, 96, 32]) torch.Size([4, 1, 96, 96, 32])\n"
     ]
    }
   ],
   "source": [
    "for batch_data in train_loader:\n",
    "    inputs, labels = (\n",
    "        batch_data[\"image\"].to(device),\n",
    "        batch_data[\"label\"].to(device),\n",
    "    )\n",
    "    print(inputs.shape, labels.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "id": "KayxFseYwCMR",
    "scrolled": true,
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "----------\n",
      "epoch 1/600\n",
      "1/5, train_loss: 0.6167\n",
      "2/5, train_loss: 0.6076\n",
      "3/5, train_loss: 0.6160\n",
      "4/5, train_loss: 0.6265\n",
      "5/5, train_loss: 0.6025\n",
      "6/5, train_loss: 0.6237\n",
      "epoch 1 average loss: 0.6155\n",
      "----------\n",
      "epoch 2/600\n",
      "1/5, train_loss: 0.6022\n",
      "2/5, train_loss: 0.6176\n",
      "3/5, train_loss: 0.6290\n",
      "4/5, train_loss: 0.6256\n",
      "5/5, train_loss: 0.6066\n",
      "6/5, train_loss: 0.6076\n",
      "epoch 2 average loss: 0.6148\n",
      "----------\n",
      "epoch 3/600\n",
      "1/5, train_loss: 0.6233\n",
      "2/5, train_loss: 0.6348\n",
      "3/5, train_loss: 0.6206\n",
      "4/5, train_loss: 0.6332\n",
      "5/5, train_loss: 0.6134\n",
      "6/5, train_loss: 0.6052\n",
      "epoch 3 average loss: 0.6217\n",
      "----------\n",
      "epoch 4/600\n",
      "1/5, train_loss: 0.6055\n",
      "2/5, train_loss: 0.6059\n",
      "3/5, train_loss: 0.6176\n",
      "4/5, train_loss: 0.6143\n",
      "5/5, train_loss: 0.6153\n",
      "6/5, train_loss: 0.6375\n",
      "epoch 4 average loss: 0.6160\n",
      "----------\n",
      "epoch 5/600\n",
      "1/5, train_loss: 0.6229\n",
      "2/5, train_loss: 0.5996\n",
      "3/5, train_loss: 0.6027\n",
      "4/5, train_loss: 0.6152\n",
      "5/5, train_loss: 0.6234\n",
      "6/5, train_loss: 0.6096\n",
      "epoch 5 average loss: 0.6122\n",
      "----------\n",
      "epoch 6/600\n",
      "1/5, train_loss: 0.6068\n",
      "2/5, train_loss: 0.6029\n",
      "3/5, train_loss: 0.6143\n",
      "4/5, train_loss: 0.6152\n",
      "5/5, train_loss: 0.6139\n",
      "6/5, train_loss: 0.6244\n",
      "epoch 6 average loss: 0.6129\n",
      "----------\n",
      "epoch 7/600\n",
      "1/5, train_loss: 0.6143\n",
      "2/5, train_loss: 0.6184\n",
      "3/5, train_loss: 0.6276\n",
      "4/5, train_loss: 0.6034\n",
      "5/5, train_loss: 0.6017\n",
      "6/5, train_loss: 0.5940\n",
      "epoch 7 average loss: 0.6099\n",
      "----------\n",
      "epoch 8/600\n",
      "1/5, train_loss: 0.6191\n",
      "2/5, train_loss: 0.6243\n",
      "3/5, train_loss: 0.6251\n",
      "4/5, train_loss: 0.6266\n",
      "5/5, train_loss: 0.6037\n",
      "6/5, train_loss: 0.6215\n",
      "epoch 8 average loss: 0.6200\n",
      "----------\n",
      "epoch 9/600\n",
      "1/5, train_loss: 0.6095\n",
      "2/5, train_loss: 0.6090\n",
      "3/5, train_loss: 0.6065\n",
      "4/5, train_loss: 0.6055\n",
      "5/5, train_loss: 0.6037\n",
      "6/5, train_loss: 0.5953\n",
      "epoch 9 average loss: 0.6049\n",
      "----------\n",
      "epoch 10/600\n",
      "1/5, train_loss: 0.5995\n",
      "2/5, train_loss: 0.6103\n",
      "3/5, train_loss: 0.6063\n",
      "4/5, train_loss: 0.6050\n",
      "5/5, train_loss: 0.5988\n",
      "6/5, train_loss: 0.6083\n",
      "epoch 10 average loss: 0.6047\n",
      "aim name Task002_Heart_AttentionUnet\n",
      "saved new best metric model at the 10th epoch\n",
      "current epoch: 10 current mean dice: 0.0122 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 11/600\n",
      "1/5, train_loss: 0.6131\n",
      "2/5, train_loss: 0.5810\n",
      "3/5, train_loss: 0.6170\n",
      "4/5, train_loss: 0.6064\n",
      "5/5, train_loss: 0.6242\n",
      "6/5, train_loss: 0.5963\n",
      "epoch 11 average loss: 0.6063\n",
      "----------\n",
      "epoch 12/600\n",
      "1/5, train_loss: 0.6136\n",
      "2/5, train_loss: 0.6200\n",
      "3/5, train_loss: 0.6245\n",
      "4/5, train_loss: 0.5828\n",
      "5/5, train_loss: 0.6260\n",
      "6/5, train_loss: 0.6088\n",
      "epoch 12 average loss: 0.6126\n",
      "----------\n",
      "epoch 13/600\n",
      "1/5, train_loss: 0.6017\n",
      "2/5, train_loss: 0.5865\n",
      "3/5, train_loss: 0.5889\n",
      "4/5, train_loss: 0.6195\n",
      "5/5, train_loss: 0.5992\n",
      "6/5, train_loss: 0.5936\n",
      "epoch 13 average loss: 0.5982\n",
      "----------\n",
      "epoch 14/600\n",
      "1/5, train_loss: 0.6164\n",
      "2/5, train_loss: 0.5896\n",
      "3/5, train_loss: 0.6094\n",
      "4/5, train_loss: 0.6110\n",
      "5/5, train_loss: 0.6177\n",
      "6/5, train_loss: 0.6015\n",
      "epoch 14 average loss: 0.6076\n",
      "----------\n",
      "epoch 15/600\n",
      "1/5, train_loss: 0.6048\n",
      "2/5, train_loss: 0.6024\n",
      "3/5, train_loss: 0.6068\n",
      "4/5, train_loss: 0.6047\n",
      "5/5, train_loss: 0.5992\n",
      "6/5, train_loss: 0.6008\n",
      "epoch 15 average loss: 0.6031\n",
      "----------\n",
      "epoch 16/600\n",
      "1/5, train_loss: 0.5686\n",
      "2/5, train_loss: 0.5970\n",
      "3/5, train_loss: 0.6045\n",
      "4/5, train_loss: 0.5887\n",
      "5/5, train_loss: 0.6106\n",
      "6/5, train_loss: 0.5972\n",
      "epoch 16 average loss: 0.5944\n",
      "----------\n",
      "epoch 17/600\n",
      "1/5, train_loss: 0.5947\n",
      "2/5, train_loss: 0.5987\n",
      "3/5, train_loss: 0.6015\n",
      "4/5, train_loss: 0.6055\n",
      "5/5, train_loss: 0.6165\n",
      "6/5, train_loss: 0.6221\n",
      "epoch 17 average loss: 0.6065\n",
      "----------\n",
      "epoch 18/600\n",
      "1/5, train_loss: 0.6091\n",
      "2/5, train_loss: 0.6044\n",
      "3/5, train_loss: 0.5959\n",
      "4/5, train_loss: 0.6098\n",
      "5/5, train_loss: 0.5932\n",
      "6/5, train_loss: 0.6028\n",
      "epoch 18 average loss: 0.6025\n",
      "----------\n",
      "epoch 19/600\n",
      "1/5, train_loss: 0.6191\n",
      "2/5, train_loss: 0.5883\n",
      "3/5, train_loss: 0.6161\n",
      "4/5, train_loss: 0.6031\n",
      "5/5, train_loss: 0.6303\n",
      "6/5, train_loss: 0.5946\n",
      "epoch 19 average loss: 0.6086\n",
      "----------\n",
      "epoch 20/600\n",
      "1/5, train_loss: 0.6040\n",
      "2/5, train_loss: 0.6126\n",
      "3/5, train_loss: 0.6134\n",
      "4/5, train_loss: 0.5947\n",
      "5/5, train_loss: 0.6300\n",
      "6/5, train_loss: 0.6029\n",
      "epoch 20 average loss: 0.6096\n",
      "current epoch: 20 current mean dice: 0.0098 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 21/600\n",
      "1/5, train_loss: 0.6014\n",
      "2/5, train_loss: 0.5978\n",
      "3/5, train_loss: 0.6105\n",
      "4/5, train_loss: 0.5835\n",
      "5/5, train_loss: 0.5998\n",
      "6/5, train_loss: 0.5888\n",
      "epoch 21 average loss: 0.5969\n",
      "----------\n",
      "epoch 22/600\n",
      "1/5, train_loss: 0.5934\n",
      "2/5, train_loss: 0.6012\n",
      "3/5, train_loss: 0.6154\n",
      "4/5, train_loss: 0.5954\n",
      "5/5, train_loss: 0.5763\n",
      "6/5, train_loss: 0.5906\n",
      "epoch 22 average loss: 0.5954\n",
      "----------\n",
      "epoch 23/600\n",
      "1/5, train_loss: 0.6063\n",
      "2/5, train_loss: 0.6176\n",
      "3/5, train_loss: 0.5893\n",
      "4/5, train_loss: 0.5859\n",
      "5/5, train_loss: 0.6056\n",
      "6/5, train_loss: 0.5687\n",
      "epoch 23 average loss: 0.5956\n",
      "----------\n",
      "epoch 24/600\n",
      "1/5, train_loss: 0.6180\n",
      "2/5, train_loss: 0.6009\n",
      "3/5, train_loss: 0.5898\n",
      "4/5, train_loss: 0.5920\n",
      "5/5, train_loss: 0.5751\n",
      "6/5, train_loss: 0.5807\n",
      "epoch 24 average loss: 0.5927\n",
      "----------\n",
      "epoch 25/600\n",
      "1/5, train_loss: 0.6035\n",
      "2/5, train_loss: 0.5917\n",
      "3/5, train_loss: 0.5910\n",
      "4/5, train_loss: 0.6082\n",
      "5/5, train_loss: 0.6095\n",
      "6/5, train_loss: 0.5887\n",
      "epoch 25 average loss: 0.5988\n",
      "----------\n",
      "epoch 26/600\n",
      "1/5, train_loss: 0.5885\n",
      "2/5, train_loss: 0.6016\n",
      "3/5, train_loss: 0.5913\n",
      "4/5, train_loss: 0.5943\n",
      "5/5, train_loss: 0.5929\n",
      "6/5, train_loss: 0.5658\n",
      "epoch 26 average loss: 0.5891\n",
      "----------\n",
      "epoch 27/600\n",
      "1/5, train_loss: 0.5961\n",
      "2/5, train_loss: 0.6035\n",
      "3/5, train_loss: 0.6036\n",
      "4/5, train_loss: 0.6216\n",
      "5/5, train_loss: 0.5818\n",
      "6/5, train_loss: 0.6070\n",
      "epoch 27 average loss: 0.6023\n",
      "----------\n",
      "epoch 28/600\n",
      "1/5, train_loss: 0.5841\n",
      "2/5, train_loss: 0.5892\n",
      "3/5, train_loss: 0.5774\n",
      "4/5, train_loss: 0.5985\n",
      "5/5, train_loss: 0.6010\n",
      "6/5, train_loss: 0.5926\n",
      "epoch 28 average loss: 0.5905\n",
      "----------\n",
      "epoch 29/600\n",
      "1/5, train_loss: 0.5915\n",
      "2/5, train_loss: 0.5621\n",
      "3/5, train_loss: 0.6163\n",
      "4/5, train_loss: 0.6014\n",
      "5/5, train_loss: 0.6005\n",
      "6/5, train_loss: 0.6298\n",
      "epoch 29 average loss: 0.6003\n",
      "----------\n",
      "epoch 30/600\n",
      "1/5, train_loss: 0.5772\n",
      "2/5, train_loss: 0.5902\n",
      "3/5, train_loss: 0.6115\n",
      "4/5, train_loss: 0.5915\n",
      "5/5, train_loss: 0.5992\n",
      "6/5, train_loss: 0.6135\n",
      "epoch 30 average loss: 0.5972\n",
      "current epoch: 30 current mean dice: 0.0121 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 31/600\n",
      "1/5, train_loss: 0.6068\n",
      "2/5, train_loss: 0.5940\n",
      "3/5, train_loss: 0.5791\n",
      "4/5, train_loss: 0.5894\n",
      "5/5, train_loss: 0.5954\n",
      "6/5, train_loss: 0.5705\n",
      "epoch 31 average loss: 0.5892\n",
      "----------\n",
      "epoch 32/600\n",
      "1/5, train_loss: 0.6022\n",
      "2/5, train_loss: 0.6125\n",
      "3/5, train_loss: 0.5936\n",
      "4/5, train_loss: 0.6036\n",
      "5/5, train_loss: 0.6009\n",
      "6/5, train_loss: 0.6113\n",
      "epoch 32 average loss: 0.6040\n",
      "----------\n",
      "epoch 33/600\n",
      "1/5, train_loss: 0.5934\n",
      "2/5, train_loss: 0.5973\n",
      "3/5, train_loss: 0.5998\n",
      "4/5, train_loss: 0.5917\n",
      "5/5, train_loss: 0.5830\n",
      "6/5, train_loss: 0.5789\n",
      "epoch 33 average loss: 0.5907\n",
      "----------\n",
      "epoch 34/600\n",
      "1/5, train_loss: 0.5710\n",
      "2/5, train_loss: 0.6063\n",
      "3/5, train_loss: 0.5947\n",
      "4/5, train_loss: 0.5996\n",
      "5/5, train_loss: 0.5973\n",
      "6/5, train_loss: 0.5701\n",
      "epoch 34 average loss: 0.5898\n",
      "----------\n",
      "epoch 35/600\n",
      "1/5, train_loss: 0.5768\n",
      "2/5, train_loss: 0.6051\n",
      "3/5, train_loss: 0.5992\n",
      "4/5, train_loss: 0.5891\n",
      "5/5, train_loss: 0.5830\n",
      "6/5, train_loss: 0.5881\n",
      "epoch 35 average loss: 0.5902\n",
      "----------\n",
      "epoch 36/600\n",
      "1/5, train_loss: 0.5984\n",
      "2/5, train_loss: 0.5999\n",
      "3/5, train_loss: 0.5791\n",
      "4/5, train_loss: 0.5953\n",
      "5/5, train_loss: 0.5837\n",
      "6/5, train_loss: 0.5842\n",
      "epoch 36 average loss: 0.5901\n",
      "----------\n",
      "epoch 37/600\n",
      "1/5, train_loss: 0.5736\n",
      "2/5, train_loss: 0.5745\n",
      "3/5, train_loss: 0.6030\n",
      "4/5, train_loss: 0.5889\n",
      "5/5, train_loss: 0.6047\n",
      "6/5, train_loss: 0.6286\n",
      "epoch 37 average loss: 0.5955\n",
      "----------\n",
      "epoch 38/600\n",
      "1/5, train_loss: 0.5850\n",
      "2/5, train_loss: 0.5593\n",
      "3/5, train_loss: 0.5948\n",
      "4/5, train_loss: 0.5777\n",
      "5/5, train_loss: 0.5999\n",
      "6/5, train_loss: 0.5982\n",
      "epoch 38 average loss: 0.5858\n",
      "----------\n",
      "epoch 39/600\n",
      "1/5, train_loss: 0.5938\n",
      "2/5, train_loss: 0.5900\n",
      "3/5, train_loss: 0.5965\n",
      "4/5, train_loss: 0.5933\n",
      "5/5, train_loss: 0.5820\n",
      "6/5, train_loss: 0.5650\n",
      "epoch 39 average loss: 0.5868\n",
      "----------\n",
      "epoch 40/600\n",
      "1/5, train_loss: 0.5897\n",
      "2/5, train_loss: 0.6133\n",
      "3/5, train_loss: 0.5921\n",
      "4/5, train_loss: 0.5969\n",
      "5/5, train_loss: 0.5944\n",
      "6/5, train_loss: 0.5813\n",
      "epoch 40 average loss: 0.5946\n",
      "current epoch: 40 current mean dice: 0.0096 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 41/600\n",
      "1/5, train_loss: 0.5868\n",
      "2/5, train_loss: 0.5935\n",
      "3/5, train_loss: 0.5878\n",
      "4/5, train_loss: 0.5482\n",
      "5/5, train_loss: 0.5824\n",
      "6/5, train_loss: 0.5827\n",
      "epoch 41 average loss: 0.5803\n",
      "----------\n",
      "epoch 42/600\n",
      "1/5, train_loss: 0.5713\n",
      "2/5, train_loss: 0.5813\n",
      "3/5, train_loss: 0.6095\n",
      "4/5, train_loss: 0.5959\n",
      "5/5, train_loss: 0.5927\n",
      "6/5, train_loss: 0.5764\n",
      "epoch 42 average loss: 0.5879\n",
      "----------\n",
      "epoch 43/600\n",
      "1/5, train_loss: 0.6148\n",
      "2/5, train_loss: 0.6186\n",
      "3/5, train_loss: 0.5707\n",
      "4/5, train_loss: 0.5874\n",
      "5/5, train_loss: 0.5820\n",
      "6/5, train_loss: 0.5866\n",
      "epoch 43 average loss: 0.5934\n",
      "----------\n",
      "epoch 44/600\n",
      "1/5, train_loss: 0.5950\n",
      "2/5, train_loss: 0.5784\n",
      "3/5, train_loss: 0.5858\n",
      "4/5, train_loss: 0.5846\n",
      "5/5, train_loss: 0.6105\n",
      "6/5, train_loss: 0.6087\n",
      "epoch 44 average loss: 0.5938\n",
      "----------\n",
      "epoch 45/600\n",
      "1/5, train_loss: 0.5802\n",
      "2/5, train_loss: 0.5697\n",
      "3/5, train_loss: 0.6057\n",
      "4/5, train_loss: 0.6043\n",
      "5/5, train_loss: 0.5811\n",
      "6/5, train_loss: 0.5899\n",
      "epoch 45 average loss: 0.5885\n",
      "----------\n",
      "epoch 46/600\n",
      "1/5, train_loss: 0.6015\n",
      "2/5, train_loss: 0.5823\n",
      "3/5, train_loss: 0.5880\n",
      "4/5, train_loss: 0.5917\n",
      "5/5, train_loss: 0.5617\n",
      "6/5, train_loss: 0.5820\n",
      "epoch 46 average loss: 0.5845\n",
      "----------\n",
      "epoch 47/600\n",
      "1/5, train_loss: 0.5774\n",
      "2/5, train_loss: 0.5874\n",
      "3/5, train_loss: 0.5624\n",
      "4/5, train_loss: 0.5419\n",
      "5/5, train_loss: 0.5757\n",
      "6/5, train_loss: 0.5784\n",
      "epoch 47 average loss: 0.5705\n",
      "----------\n",
      "epoch 48/600\n",
      "1/5, train_loss: 0.5895\n",
      "2/5, train_loss: 0.5984\n",
      "3/5, train_loss: 0.5654\n",
      "4/5, train_loss: 0.5821\n",
      "5/5, train_loss: 0.5616\n",
      "6/5, train_loss: 0.6087\n",
      "epoch 48 average loss: 0.5843\n",
      "----------\n",
      "epoch 49/600\n",
      "1/5, train_loss: 0.6000\n",
      "2/5, train_loss: 0.5564\n",
      "3/5, train_loss: 0.6108\n",
      "4/5, train_loss: 0.5918\n",
      "5/5, train_loss: 0.6211\n",
      "6/5, train_loss: 0.5941\n",
      "epoch 49 average loss: 0.5957\n",
      "----------\n",
      "epoch 50/600\n",
      "1/5, train_loss: 0.5963\n",
      "2/5, train_loss: 0.5877\n",
      "3/5, train_loss: 0.6074\n",
      "4/5, train_loss: 0.5887\n",
      "5/5, train_loss: 0.5727\n",
      "6/5, train_loss: 0.6190\n",
      "epoch 50 average loss: 0.5953\n",
      "current epoch: 50 current mean dice: 0.0064 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 51/600\n",
      "1/5, train_loss: 0.6041\n",
      "2/5, train_loss: 0.5669\n",
      "3/5, train_loss: 0.6012\n",
      "4/5, train_loss: 0.5919\n",
      "5/5, train_loss: 0.5597\n",
      "6/5, train_loss: 0.5830\n",
      "epoch 51 average loss: 0.5845\n",
      "----------\n",
      "epoch 52/600\n",
      "1/5, train_loss: 0.5718\n",
      "2/5, train_loss: 0.5946\n",
      "3/5, train_loss: 0.5759\n",
      "4/5, train_loss: 0.5984\n",
      "5/5, train_loss: 0.6007\n",
      "6/5, train_loss: 0.5552\n",
      "epoch 52 average loss: 0.5828\n",
      "----------\n",
      "epoch 53/600\n",
      "1/5, train_loss: 0.6038\n",
      "2/5, train_loss: 0.5766\n",
      "3/5, train_loss: 0.5797\n",
      "4/5, train_loss: 0.5913\n",
      "5/5, train_loss: 0.5944\n",
      "6/5, train_loss: 0.5590\n",
      "epoch 53 average loss: 0.5841\n",
      "----------\n",
      "epoch 54/600\n",
      "1/5, train_loss: 0.5955\n",
      "2/5, train_loss: 0.6064\n",
      "3/5, train_loss: 0.5837\n",
      "4/5, train_loss: 0.5804\n",
      "5/5, train_loss: 0.5780\n",
      "6/5, train_loss: 0.6039\n",
      "epoch 54 average loss: 0.5913\n",
      "----------\n",
      "epoch 55/600\n",
      "1/5, train_loss: 0.5996\n",
      "2/5, train_loss: 0.5713\n",
      "3/5, train_loss: 0.5992\n",
      "4/5, train_loss: 0.5914\n",
      "5/5, train_loss: 0.5769\n",
      "6/5, train_loss: 0.6084\n",
      "epoch 55 average loss: 0.5911\n",
      "----------\n",
      "epoch 56/600\n",
      "1/5, train_loss: 0.5811\n",
      "2/5, train_loss: 0.5900\n",
      "3/5, train_loss: 0.5753\n",
      "4/5, train_loss: 0.5832\n",
      "5/5, train_loss: 0.5628\n",
      "6/5, train_loss: 0.5439\n",
      "epoch 56 average loss: 0.5727\n",
      "----------\n",
      "epoch 57/600\n",
      "1/5, train_loss: 0.6149\n",
      "2/5, train_loss: 0.5979\n",
      "3/5, train_loss: 0.5894\n",
      "4/5, train_loss: 0.5865\n",
      "5/5, train_loss: 0.5889\n",
      "6/5, train_loss: 0.5928\n",
      "epoch 57 average loss: 0.5951\n",
      "----------\n",
      "epoch 58/600\n",
      "1/5, train_loss: 0.5906\n",
      "2/5, train_loss: 0.5752\n",
      "3/5, train_loss: 0.5929\n",
      "4/5, train_loss: 0.5737\n",
      "5/5, train_loss: 0.6001\n",
      "6/5, train_loss: 0.6263\n",
      "epoch 58 average loss: 0.5931\n",
      "----------\n",
      "epoch 59/600\n",
      "1/5, train_loss: 0.5837\n",
      "2/5, train_loss: 0.5823\n",
      "3/5, train_loss: 0.5754\n",
      "4/5, train_loss: 0.5921\n",
      "5/5, train_loss: 0.5870\n",
      "6/5, train_loss: 0.5789\n",
      "epoch 59 average loss: 0.5832\n",
      "----------\n",
      "epoch 60/600\n",
      "1/5, train_loss: 0.5945\n",
      "2/5, train_loss: 0.5999\n",
      "3/5, train_loss: 0.5825\n",
      "4/5, train_loss: 0.5907\n",
      "5/5, train_loss: 0.5717\n",
      "6/5, train_loss: 0.6028\n",
      "epoch 60 average loss: 0.5903\n",
      "current epoch: 60 current mean dice: 0.0078 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 61/600\n",
      "1/5, train_loss: 0.5997\n",
      "2/5, train_loss: 0.5961\n",
      "3/5, train_loss: 0.5691\n",
      "4/5, train_loss: 0.6018\n",
      "5/5, train_loss: 0.5711\n",
      "6/5, train_loss: 0.5517\n",
      "epoch 61 average loss: 0.5816\n",
      "----------\n",
      "epoch 62/600\n",
      "1/5, train_loss: 0.5701\n",
      "2/5, train_loss: 0.5931\n",
      "3/5, train_loss: 0.5823\n",
      "4/5, train_loss: 0.5787\n",
      "5/5, train_loss: 0.5995\n",
      "6/5, train_loss: 0.5808\n",
      "epoch 62 average loss: 0.5841\n",
      "----------\n",
      "epoch 63/600\n",
      "1/5, train_loss: 0.5467\n",
      "2/5, train_loss: 0.5944\n",
      "3/5, train_loss: 0.5943\n",
      "4/5, train_loss: 0.5847\n",
      "5/5, train_loss: 0.5915\n",
      "6/5, train_loss: 0.5513\n",
      "epoch 63 average loss: 0.5771\n",
      "----------\n",
      "epoch 64/600\n",
      "1/5, train_loss: 0.5916\n",
      "2/5, train_loss: 0.5876\n",
      "3/5, train_loss: 0.5754\n",
      "4/5, train_loss: 0.5914\n",
      "5/5, train_loss: 0.5931\n",
      "6/5, train_loss: 0.5901\n",
      "epoch 64 average loss: 0.5882\n",
      "----------\n",
      "epoch 65/600\n",
      "1/5, train_loss: 0.5995\n",
      "2/5, train_loss: 0.5730\n",
      "3/5, train_loss: 0.6052\n",
      "4/5, train_loss: 0.5634\n",
      "5/5, train_loss: 0.6006\n",
      "6/5, train_loss: 0.5870\n",
      "epoch 65 average loss: 0.5881\n",
      "----------\n",
      "epoch 66/600\n",
      "1/5, train_loss: 0.5922\n",
      "2/5, train_loss: 0.5809\n",
      "3/5, train_loss: 0.5914\n",
      "4/5, train_loss: 0.5700\n",
      "5/5, train_loss: 0.5777\n",
      "6/5, train_loss: 0.5866\n",
      "epoch 66 average loss: 0.5831\n",
      "----------\n",
      "epoch 67/600\n",
      "1/5, train_loss: 0.5903\n",
      "2/5, train_loss: 0.6026\n",
      "3/5, train_loss: 0.5836\n",
      "4/5, train_loss: 0.5743\n",
      "5/5, train_loss: 0.5565\n",
      "6/5, train_loss: 0.5763\n",
      "epoch 67 average loss: 0.5806\n",
      "----------\n",
      "epoch 68/600\n",
      "1/5, train_loss: 0.6007\n",
      "2/5, train_loss: 0.5823\n",
      "3/5, train_loss: 0.6059\n",
      "4/5, train_loss: 0.5723\n",
      "5/5, train_loss: 0.5684\n",
      "6/5, train_loss: 0.6153\n",
      "epoch 68 average loss: 0.5908\n",
      "----------\n",
      "epoch 69/600\n",
      "1/5, train_loss: 0.5967\n",
      "2/5, train_loss: 0.5744\n",
      "3/5, train_loss: 0.5813\n",
      "4/5, train_loss: 0.5824\n",
      "5/5, train_loss: 0.5688\n",
      "6/5, train_loss: 0.5751\n",
      "epoch 69 average loss: 0.5798\n",
      "----------\n",
      "epoch 70/600\n",
      "1/5, train_loss: 0.5736\n",
      "2/5, train_loss: 0.6045\n",
      "3/5, train_loss: 0.5905\n",
      "4/5, train_loss: 0.5677\n",
      "5/5, train_loss: 0.5997\n",
      "6/5, train_loss: 0.5932\n",
      "epoch 70 average loss: 0.5882\n",
      "current epoch: 70 current mean dice: 0.0064 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 71/600\n",
      "1/5, train_loss: 0.5948\n",
      "2/5, train_loss: 0.6057\n",
      "3/5, train_loss: 0.5685\n",
      "4/5, train_loss: 0.5481\n",
      "5/5, train_loss: 0.5929\n",
      "6/5, train_loss: 0.5956\n",
      "epoch 71 average loss: 0.5843\n",
      "----------\n",
      "epoch 72/600\n",
      "1/5, train_loss: 0.5287\n",
      "2/5, train_loss: 0.5852\n",
      "3/5, train_loss: 0.5965\n",
      "4/5, train_loss: 0.5798\n",
      "5/5, train_loss: 0.5657\n",
      "6/5, train_loss: 0.6001\n",
      "epoch 72 average loss: 0.5760\n",
      "----------\n",
      "epoch 73/600\n",
      "1/5, train_loss: 0.5735\n",
      "2/5, train_loss: 0.5932\n",
      "3/5, train_loss: 0.5659\n",
      "4/5, train_loss: 0.5593\n",
      "5/5, train_loss: 0.5847\n",
      "6/5, train_loss: 0.5772\n",
      "epoch 73 average loss: 0.5756\n",
      "----------\n",
      "epoch 74/600\n",
      "1/5, train_loss: 0.5664\n",
      "2/5, train_loss: 0.6107\n",
      "3/5, train_loss: 0.5916\n",
      "4/5, train_loss: 0.5844\n",
      "5/5, train_loss: 0.5844\n",
      "6/5, train_loss: 0.5992\n",
      "epoch 74 average loss: 0.5895\n",
      "----------\n",
      "epoch 75/600\n",
      "1/5, train_loss: 0.5788\n",
      "2/5, train_loss: 0.5969\n",
      "3/5, train_loss: 0.6000\n",
      "4/5, train_loss: 0.6119\n",
      "5/5, train_loss: 0.5903\n",
      "6/5, train_loss: 0.5796\n",
      "epoch 75 average loss: 0.5929\n",
      "----------\n",
      "epoch 76/600\n",
      "1/5, train_loss: 0.5879\n",
      "2/5, train_loss: 0.5868\n",
      "3/5, train_loss: 0.5604\n",
      "4/5, train_loss: 0.5655\n",
      "5/5, train_loss: 0.5694\n",
      "6/5, train_loss: 0.5299\n",
      "epoch 76 average loss: 0.5666\n",
      "----------\n",
      "epoch 77/600\n",
      "1/5, train_loss: 0.5566\n",
      "2/5, train_loss: 0.5822\n",
      "3/5, train_loss: 0.5678\n",
      "4/5, train_loss: 0.5909\n",
      "5/5, train_loss: 0.6125\n",
      "6/5, train_loss: 0.5906\n",
      "epoch 77 average loss: 0.5834\n",
      "----------\n",
      "epoch 78/600\n",
      "1/5, train_loss: 0.5778\n",
      "2/5, train_loss: 0.5733\n",
      "3/5, train_loss: 0.5971\n",
      "4/5, train_loss: 0.5715\n",
      "5/5, train_loss: 0.5771\n",
      "6/5, train_loss: 0.6026\n",
      "epoch 78 average loss: 0.5832\n",
      "----------\n",
      "epoch 79/600\n",
      "1/5, train_loss: 0.5743\n",
      "2/5, train_loss: 0.5713\n",
      "3/5, train_loss: 0.5889\n",
      "4/5, train_loss: 0.5803\n",
      "5/5, train_loss: 0.5601\n",
      "6/5, train_loss: 0.5816\n",
      "epoch 79 average loss: 0.5761\n",
      "----------\n",
      "epoch 80/600\n",
      "1/5, train_loss: 0.5903\n",
      "2/5, train_loss: 0.5970\n",
      "3/5, train_loss: 0.5535\n",
      "4/5, train_loss: 0.5743\n",
      "5/5, train_loss: 0.5897\n",
      "6/5, train_loss: 0.6215\n",
      "epoch 80 average loss: 0.5877\n",
      "current epoch: 80 current mean dice: 0.0078 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 81/600\n",
      "1/5, train_loss: 0.5797\n",
      "2/5, train_loss: 0.5839\n",
      "3/5, train_loss: 0.5563\n",
      "4/5, train_loss: 0.6066\n",
      "5/5, train_loss: 0.5693\n",
      "6/5, train_loss: 0.5831\n",
      "epoch 81 average loss: 0.5798\n",
      "----------\n",
      "epoch 82/600\n",
      "1/5, train_loss: 0.5824\n",
      "2/5, train_loss: 0.6002\n",
      "3/5, train_loss: 0.5858\n",
      "4/5, train_loss: 0.5620\n",
      "5/5, train_loss: 0.5857\n",
      "6/5, train_loss: 0.5704\n",
      "epoch 82 average loss: 0.5811\n",
      "----------\n",
      "epoch 83/600\n",
      "1/5, train_loss: 0.5690\n",
      "2/5, train_loss: 0.5933\n",
      "3/5, train_loss: 0.5830\n",
      "4/5, train_loss: 0.5309\n",
      "5/5, train_loss: 0.5768\n",
      "6/5, train_loss: 0.5420\n",
      "epoch 83 average loss: 0.5658\n",
      "----------\n",
      "epoch 84/600\n",
      "1/5, train_loss: 0.5466\n",
      "2/5, train_loss: 0.5615\n",
      "3/5, train_loss: 0.5837\n",
      "4/5, train_loss: 0.5906\n",
      "5/5, train_loss: 0.5669\n",
      "6/5, train_loss: 0.5979\n",
      "epoch 84 average loss: 0.5745\n",
      "----------\n",
      "epoch 85/600\n",
      "1/5, train_loss: 0.5897\n",
      "2/5, train_loss: 0.5955\n",
      "3/5, train_loss: 0.5503\n",
      "4/5, train_loss: 0.5579\n",
      "5/5, train_loss: 0.5478\n",
      "6/5, train_loss: 0.5601\n",
      "epoch 85 average loss: 0.5669\n",
      "----------\n",
      "epoch 86/600\n",
      "1/5, train_loss: 0.6057\n",
      "2/5, train_loss: 0.5969\n",
      "3/5, train_loss: 0.5912\n",
      "4/5, train_loss: 0.5480\n",
      "5/5, train_loss: 0.5587\n",
      "6/5, train_loss: 0.5620\n",
      "epoch 86 average loss: 0.5771\n",
      "----------\n",
      "epoch 87/600\n",
      "1/5, train_loss: 0.5878\n",
      "2/5, train_loss: 0.5719\n",
      "3/5, train_loss: 0.5649\n",
      "4/5, train_loss: 0.5810\n",
      "5/5, train_loss: 0.5906\n",
      "6/5, train_loss: 0.5691\n",
      "epoch 87 average loss: 0.5776\n",
      "----------\n",
      "epoch 88/600\n",
      "1/5, train_loss: 0.5678\n",
      "2/5, train_loss: 0.5780\n",
      "3/5, train_loss: 0.5893\n",
      "4/5, train_loss: 0.5784\n",
      "5/5, train_loss: 0.5622\n",
      "6/5, train_loss: 0.5508\n",
      "epoch 88 average loss: 0.5711\n",
      "----------\n",
      "epoch 89/600\n",
      "1/5, train_loss: 0.5685\n",
      "2/5, train_loss: 0.5868\n",
      "3/5, train_loss: 0.5751\n",
      "4/5, train_loss: 0.5660\n",
      "5/5, train_loss: 0.5796\n",
      "6/5, train_loss: 0.5606\n",
      "epoch 89 average loss: 0.5728\n",
      "----------\n",
      "epoch 90/600\n",
      "1/5, train_loss: 0.5637\n",
      "2/5, train_loss: 0.5740\n",
      "3/5, train_loss: 0.5645\n",
      "4/5, train_loss: 0.5768\n",
      "5/5, train_loss: 0.5961\n",
      "6/5, train_loss: 0.5703\n",
      "epoch 90 average loss: 0.5742\n",
      "current epoch: 90 current mean dice: 0.0075 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 91/600\n",
      "1/5, train_loss: 0.5662\n",
      "2/5, train_loss: 0.5676\n",
      "3/5, train_loss: 0.5716\n",
      "4/5, train_loss: 0.5848\n",
      "5/5, train_loss: 0.5794\n",
      "6/5, train_loss: 0.5794\n",
      "epoch 91 average loss: 0.5748\n",
      "----------\n",
      "epoch 92/600\n",
      "1/5, train_loss: 0.5607\n",
      "2/5, train_loss: 0.5835\n",
      "3/5, train_loss: 0.5898\n",
      "4/5, train_loss: 0.5708\n",
      "5/5, train_loss: 0.5391\n",
      "6/5, train_loss: 0.5641\n",
      "epoch 92 average loss: 0.5680\n",
      "----------\n",
      "epoch 93/600\n",
      "1/5, train_loss: 0.5933\n",
      "2/5, train_loss: 0.5614\n",
      "3/5, train_loss: 0.5743\n",
      "4/5, train_loss: 0.5573\n",
      "5/5, train_loss: 0.5998\n",
      "6/5, train_loss: 0.5511\n",
      "epoch 93 average loss: 0.5729\n",
      "----------\n",
      "epoch 94/600\n",
      "1/5, train_loss: 0.5841\n",
      "2/5, train_loss: 0.5594\n",
      "3/5, train_loss: 0.5943\n",
      "4/5, train_loss: 0.5571\n",
      "5/5, train_loss: 0.5694\n",
      "6/5, train_loss: 0.6008\n",
      "epoch 94 average loss: 0.5775\n",
      "----------\n",
      "epoch 95/600\n",
      "1/5, train_loss: 0.5788\n",
      "2/5, train_loss: 0.5645\n",
      "3/5, train_loss: 0.5786\n",
      "4/5, train_loss: 0.5973\n",
      "5/5, train_loss: 0.5796\n",
      "6/5, train_loss: 0.5870\n",
      "epoch 95 average loss: 0.5809\n",
      "----------\n",
      "epoch 96/600\n",
      "1/5, train_loss: 0.5929\n",
      "2/5, train_loss: 0.5828\n",
      "3/5, train_loss: 0.6048\n",
      "4/5, train_loss: 0.5924\n",
      "5/5, train_loss: 0.5777\n",
      "6/5, train_loss: 0.6192\n",
      "epoch 96 average loss: 0.5950\n",
      "----------\n",
      "epoch 97/600\n",
      "1/5, train_loss: 0.5632\n",
      "2/5, train_loss: 0.5591\n",
      "3/5, train_loss: 0.5751\n",
      "4/5, train_loss: 0.5755\n",
      "5/5, train_loss: 0.5859\n",
      "6/5, train_loss: 0.5729\n",
      "epoch 97 average loss: 0.5719\n",
      "----------\n",
      "epoch 98/600\n",
      "1/5, train_loss: 0.5923\n",
      "2/5, train_loss: 0.5564\n",
      "3/5, train_loss: 0.5992\n",
      "4/5, train_loss: 0.5702\n",
      "5/5, train_loss: 0.5629\n",
      "6/5, train_loss: 0.5359\n",
      "epoch 98 average loss: 0.5695\n",
      "----------\n",
      "epoch 99/600\n",
      "1/5, train_loss: 0.5699\n",
      "2/5, train_loss: 0.5843\n",
      "3/5, train_loss: 0.5480\n",
      "4/5, train_loss: 0.5908\n",
      "5/5, train_loss: 0.5255\n",
      "6/5, train_loss: 0.5440\n",
      "epoch 99 average loss: 0.5604\n",
      "----------\n",
      "epoch 100/600\n",
      "1/5, train_loss: 0.5633\n",
      "2/5, train_loss: 0.5561\n",
      "3/5, train_loss: 0.5779\n",
      "4/5, train_loss: 0.5786\n",
      "5/5, train_loss: 0.5760\n",
      "6/5, train_loss: 0.5647\n",
      "epoch 100 average loss: 0.5694\n",
      "current epoch: 100 current mean dice: 0.0064 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 101/600\n",
      "1/5, train_loss: 0.5666\n",
      "2/5, train_loss: 0.5684\n",
      "3/5, train_loss: 0.5639\n",
      "4/5, train_loss: 0.5735\n",
      "5/5, train_loss: 0.5612\n",
      "6/5, train_loss: 0.5829\n",
      "epoch 101 average loss: 0.5694\n",
      "----------\n",
      "epoch 102/600\n",
      "1/5, train_loss: 0.5580\n",
      "2/5, train_loss: 0.5811\n",
      "3/5, train_loss: 0.5869\n",
      "4/5, train_loss: 0.5843\n",
      "5/5, train_loss: 0.5906\n",
      "6/5, train_loss: 0.5690\n",
      "epoch 102 average loss: 0.5783\n",
      "----------\n",
      "epoch 103/600\n",
      "1/5, train_loss: 0.5737\n",
      "2/5, train_loss: 0.5713\n",
      "3/5, train_loss: 0.5704\n",
      "4/5, train_loss: 0.5870\n",
      "5/5, train_loss: 0.5723\n",
      "6/5, train_loss: 0.5521\n",
      "epoch 103 average loss: 0.5711\n",
      "----------\n",
      "epoch 104/600\n",
      "1/5, train_loss: 0.5700\n",
      "2/5, train_loss: 0.5409\n",
      "3/5, train_loss: 0.5658\n",
      "4/5, train_loss: 0.5624\n",
      "5/5, train_loss: 0.5505\n",
      "6/5, train_loss: 0.5764\n",
      "epoch 104 average loss: 0.5610\n",
      "----------\n",
      "epoch 105/600\n",
      "1/5, train_loss: 0.5728\n",
      "2/5, train_loss: 0.5772\n",
      "3/5, train_loss: 0.5920\n",
      "4/5, train_loss: 0.5647\n",
      "5/5, train_loss: 0.5830\n",
      "6/5, train_loss: 0.5961\n",
      "epoch 105 average loss: 0.5810\n",
      "----------\n",
      "epoch 106/600\n",
      "1/5, train_loss: 0.5567\n",
      "2/5, train_loss: 0.5648\n",
      "3/5, train_loss: 0.5960\n",
      "4/5, train_loss: 0.5410\n",
      "5/5, train_loss: 0.5661\n",
      "6/5, train_loss: 0.5688\n",
      "epoch 106 average loss: 0.5656\n",
      "----------\n",
      "epoch 107/600\n",
      "1/5, train_loss: 0.5983\n",
      "2/5, train_loss: 0.5991\n",
      "3/5, train_loss: 0.5569\n",
      "4/5, train_loss: 0.5658\n",
      "5/5, train_loss: 0.5793\n",
      "6/5, train_loss: 0.6001\n",
      "epoch 107 average loss: 0.5833\n",
      "----------\n",
      "epoch 108/600\n",
      "1/5, train_loss: 0.5683\n",
      "2/5, train_loss: 0.5743\n",
      "3/5, train_loss: 0.5617\n",
      "4/5, train_loss: 0.5410\n",
      "5/5, train_loss: 0.5732\n",
      "6/5, train_loss: 0.5933\n",
      "epoch 108 average loss: 0.5686\n",
      "----------\n",
      "epoch 109/600\n",
      "1/5, train_loss: 0.5817\n",
      "2/5, train_loss: 0.5861\n",
      "3/5, train_loss: 0.5875\n",
      "4/5, train_loss: 0.5634\n",
      "5/5, train_loss: 0.5472\n",
      "6/5, train_loss: 0.6174\n",
      "epoch 109 average loss: 0.5806\n",
      "----------\n",
      "epoch 110/600\n",
      "1/5, train_loss: 0.5706\n",
      "2/5, train_loss: 0.5572\n",
      "3/5, train_loss: 0.5703\n",
      "4/5, train_loss: 0.5912\n",
      "5/5, train_loss: 0.5337\n",
      "6/5, train_loss: 0.5907\n",
      "epoch 110 average loss: 0.5690\n",
      "current epoch: 110 current mean dice: 0.0044 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 111/600\n",
      "1/5, train_loss: 0.5615\n",
      "2/5, train_loss: 0.5623\n",
      "3/5, train_loss: 0.5873\n",
      "4/5, train_loss: 0.5960\n",
      "5/5, train_loss: 0.5545\n",
      "6/5, train_loss: 0.5552\n",
      "epoch 111 average loss: 0.5695\n",
      "----------\n",
      "epoch 112/600\n",
      "1/5, train_loss: 0.5752\n",
      "2/5, train_loss: 0.5786\n",
      "3/5, train_loss: 0.5758\n",
      "4/5, train_loss: 0.5522\n",
      "5/5, train_loss: 0.5659\n",
      "6/5, train_loss: 0.5399\n",
      "epoch 112 average loss: 0.5646\n",
      "----------\n",
      "epoch 113/600\n",
      "1/5, train_loss: 0.5526\n",
      "2/5, train_loss: 0.5477\n",
      "3/5, train_loss: 0.5674\n",
      "4/5, train_loss: 0.5667\n",
      "5/5, train_loss: 0.5836\n",
      "6/5, train_loss: 0.5052\n",
      "epoch 113 average loss: 0.5539\n",
      "----------\n",
      "epoch 114/600\n",
      "1/5, train_loss: 0.5830\n",
      "2/5, train_loss: 0.5657\n",
      "3/5, train_loss: 0.5698\n",
      "4/5, train_loss: 0.5229\n",
      "5/5, train_loss: 0.5698\n",
      "6/5, train_loss: 0.5977\n",
      "epoch 114 average loss: 0.5682\n",
      "----------\n",
      "epoch 115/600\n",
      "1/5, train_loss: 0.5682\n",
      "2/5, train_loss: 0.5561\n",
      "3/5, train_loss: 0.5833\n",
      "4/5, train_loss: 0.5391\n",
      "5/5, train_loss: 0.5625\n",
      "6/5, train_loss: 0.5829\n",
      "epoch 115 average loss: 0.5654\n",
      "----------\n",
      "epoch 116/600\n",
      "1/5, train_loss: 0.5893\n",
      "2/5, train_loss: 0.5939\n",
      "3/5, train_loss: 0.5732\n",
      "4/5, train_loss: 0.5472\n",
      "5/5, train_loss: 0.5708\n",
      "6/5, train_loss: 0.5415\n",
      "epoch 116 average loss: 0.5693\n",
      "----------\n",
      "epoch 117/600\n",
      "1/5, train_loss: 0.5905\n",
      "2/5, train_loss: 0.5616\n",
      "3/5, train_loss: 0.5456\n",
      "4/5, train_loss: 0.5439\n",
      "5/5, train_loss: 0.5841\n",
      "6/5, train_loss: 0.5510\n",
      "epoch 117 average loss: 0.5628\n",
      "----------\n",
      "epoch 118/600\n",
      "1/5, train_loss: 0.5596\n",
      "2/5, train_loss: 0.5498\n",
      "3/5, train_loss: 0.5783\n",
      "4/5, train_loss: 0.5861\n",
      "5/5, train_loss: 0.5675\n",
      "6/5, train_loss: 0.5605\n",
      "epoch 118 average loss: 0.5670\n",
      "----------\n",
      "epoch 119/600\n",
      "1/5, train_loss: 0.5775\n",
      "2/5, train_loss: 0.5665\n",
      "3/5, train_loss: 0.5664\n",
      "4/5, train_loss: 0.5762\n",
      "5/5, train_loss: 0.5779\n",
      "6/5, train_loss: 0.5625\n",
      "epoch 119 average loss: 0.5712\n",
      "----------\n",
      "epoch 120/600\n",
      "1/5, train_loss: 0.5546\n",
      "2/5, train_loss: 0.5743\n",
      "3/5, train_loss: 0.5847\n",
      "4/5, train_loss: 0.5597\n",
      "5/5, train_loss: 0.5686\n",
      "6/5, train_loss: 0.5363\n",
      "epoch 120 average loss: 0.5631\n",
      "current epoch: 120 current mean dice: 0.0057 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 121/600\n",
      "1/5, train_loss: 0.5779\n",
      "2/5, train_loss: 0.5867\n",
      "3/5, train_loss: 0.5389\n",
      "4/5, train_loss: 0.5565\n",
      "5/5, train_loss: 0.5722\n",
      "6/5, train_loss: 0.6151\n",
      "epoch 121 average loss: 0.5746\n",
      "----------\n",
      "epoch 122/600\n",
      "1/5, train_loss: 0.5732\n",
      "2/5, train_loss: 0.5954\n",
      "3/5, train_loss: 0.5583\n",
      "4/5, train_loss: 0.5853\n",
      "5/5, train_loss: 0.5322\n",
      "6/5, train_loss: 0.5884\n",
      "epoch 122 average loss: 0.5721\n",
      "----------\n",
      "epoch 123/600\n",
      "1/5, train_loss: 0.5735\n",
      "2/5, train_loss: 0.5654\n",
      "3/5, train_loss: 0.5760\n",
      "4/5, train_loss: 0.5774\n",
      "5/5, train_loss: 0.5671\n",
      "6/5, train_loss: 0.5283\n",
      "epoch 123 average loss: 0.5646\n",
      "----------\n",
      "epoch 124/600\n",
      "1/5, train_loss: 0.5583\n",
      "2/5, train_loss: 0.5313\n",
      "3/5, train_loss: 0.5924\n",
      "4/5, train_loss: 0.5732\n",
      "5/5, train_loss: 0.5519\n",
      "6/5, train_loss: 0.5746\n",
      "epoch 124 average loss: 0.5636\n",
      "----------\n",
      "epoch 125/600\n",
      "1/5, train_loss: 0.5733\n",
      "2/5, train_loss: 0.5510\n",
      "3/5, train_loss: 0.5949\n",
      "4/5, train_loss: 0.5560\n",
      "5/5, train_loss: 0.5529\n",
      "6/5, train_loss: 0.5359\n",
      "epoch 125 average loss: 0.5607\n",
      "----------\n",
      "epoch 126/600\n",
      "1/5, train_loss: 0.5592\n",
      "2/5, train_loss: 0.5357\n",
      "3/5, train_loss: 0.5902\n",
      "4/5, train_loss: 0.5723\n",
      "5/5, train_loss: 0.5738\n",
      "6/5, train_loss: 0.5585\n",
      "epoch 126 average loss: 0.5650\n",
      "----------\n",
      "epoch 127/600\n",
      "1/5, train_loss: 0.5765\n",
      "2/5, train_loss: 0.5788\n",
      "3/5, train_loss: 0.5483\n",
      "4/5, train_loss: 0.5561\n",
      "5/5, train_loss: 0.5744\n",
      "6/5, train_loss: 0.5483\n",
      "epoch 127 average loss: 0.5637\n",
      "----------\n",
      "epoch 128/600\n",
      "1/5, train_loss: 0.5921\n",
      "2/5, train_loss: 0.5671\n",
      "3/5, train_loss: 0.5583\n",
      "4/5, train_loss: 0.5420\n",
      "5/5, train_loss: 0.5656\n",
      "6/5, train_loss: 0.5554\n",
      "epoch 128 average loss: 0.5634\n",
      "----------\n",
      "epoch 129/600\n",
      "1/5, train_loss: 0.5634\n",
      "2/5, train_loss: 0.5585\n",
      "3/5, train_loss: 0.5979\n",
      "4/5, train_loss: 0.5691\n",
      "5/5, train_loss: 0.5456\n",
      "6/5, train_loss: 0.5528\n",
      "epoch 129 average loss: 0.5646\n",
      "----------\n",
      "epoch 130/600\n",
      "1/5, train_loss: 0.5684\n",
      "2/5, train_loss: 0.5742\n",
      "3/5, train_loss: 0.5692\n",
      "4/5, train_loss: 0.5724\n",
      "5/5, train_loss: 0.5823\n",
      "6/5, train_loss: 0.5221\n",
      "epoch 130 average loss: 0.5648\n",
      "current epoch: 130 current mean dice: 0.0009 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 131/600\n",
      "1/5, train_loss: 0.5462\n",
      "2/5, train_loss: 0.5521\n",
      "3/5, train_loss: 0.5743\n",
      "4/5, train_loss: 0.5319\n",
      "5/5, train_loss: 0.5770\n",
      "6/5, train_loss: 0.5401\n",
      "epoch 131 average loss: 0.5536\n",
      "----------\n",
      "epoch 132/600\n",
      "1/5, train_loss: 0.5555\n",
      "2/5, train_loss: 0.5651\n",
      "3/5, train_loss: 0.5775\n",
      "4/5, train_loss: 0.5474\n",
      "5/5, train_loss: 0.5798\n",
      "6/5, train_loss: 0.5767\n",
      "epoch 132 average loss: 0.5670\n",
      "----------\n",
      "epoch 133/600\n",
      "1/5, train_loss: 0.5881\n",
      "2/5, train_loss: 0.5313\n",
      "3/5, train_loss: 0.5335\n",
      "4/5, train_loss: 0.5484\n",
      "5/5, train_loss: 0.5842\n",
      "6/5, train_loss: 0.5601\n",
      "epoch 133 average loss: 0.5576\n",
      "----------\n",
      "epoch 134/600\n",
      "1/5, train_loss: 0.5952\n",
      "2/5, train_loss: 0.5677\n",
      "3/5, train_loss: 0.5740\n",
      "4/5, train_loss: 0.5471\n",
      "5/5, train_loss: 0.5755\n",
      "6/5, train_loss: 0.5751\n",
      "epoch 134 average loss: 0.5724\n",
      "----------\n",
      "epoch 135/600\n",
      "1/5, train_loss: 0.5431\n",
      "2/5, train_loss: 0.5302\n",
      "3/5, train_loss: 0.5802\n",
      "4/5, train_loss: 0.5494\n",
      "5/5, train_loss: 0.5809\n",
      "6/5, train_loss: 0.5873\n",
      "epoch 135 average loss: 0.5619\n",
      "----------\n",
      "epoch 136/600\n",
      "1/5, train_loss: 0.5799\n",
      "2/5, train_loss: 0.5454\n",
      "3/5, train_loss: 0.5786\n",
      "4/5, train_loss: 0.5877\n",
      "5/5, train_loss: 0.5363\n",
      "6/5, train_loss: 0.5431\n",
      "epoch 136 average loss: 0.5618\n",
      "----------\n",
      "epoch 137/600\n",
      "1/5, train_loss: 0.5378\n",
      "2/5, train_loss: 0.5568\n",
      "3/5, train_loss: 0.5689\n",
      "4/5, train_loss: 0.5393\n",
      "5/5, train_loss: 0.5565\n",
      "6/5, train_loss: 0.6086\n",
      "epoch 137 average loss: 0.5613\n",
      "----------\n",
      "epoch 138/600\n",
      "1/5, train_loss: 0.5535\n",
      "2/5, train_loss: 0.5496\n",
      "3/5, train_loss: 0.5899\n",
      "4/5, train_loss: 0.5879\n",
      "5/5, train_loss: 0.6070\n",
      "6/5, train_loss: 0.5862\n",
      "epoch 138 average loss: 0.5790\n",
      "----------\n",
      "epoch 139/600\n",
      "1/5, train_loss: 0.5611\n",
      "2/5, train_loss: 0.5607\n",
      "3/5, train_loss: 0.5715\n",
      "4/5, train_loss: 0.5836\n",
      "5/5, train_loss: 0.5600\n",
      "6/5, train_loss: 0.5447\n",
      "epoch 139 average loss: 0.5636\n",
      "----------\n",
      "epoch 140/600\n",
      "1/5, train_loss: 0.5700\n",
      "2/5, train_loss: 0.5520\n",
      "3/5, train_loss: 0.5963\n",
      "4/5, train_loss: 0.5447\n",
      "5/5, train_loss: 0.5653\n",
      "6/5, train_loss: 0.4858\n",
      "epoch 140 average loss: 0.5524\n",
      "current epoch: 140 current mean dice: 0.0023 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 141/600\n",
      "1/5, train_loss: 0.5818\n",
      "2/5, train_loss: 0.5737\n",
      "3/5, train_loss: 0.5579\n",
      "4/5, train_loss: 0.5777\n",
      "5/5, train_loss: 0.5330\n",
      "6/5, train_loss: 0.5684\n",
      "epoch 141 average loss: 0.5654\n",
      "----------\n",
      "epoch 142/600\n",
      "1/5, train_loss: 0.5897\n",
      "2/5, train_loss: 0.5652\n",
      "3/5, train_loss: 0.5576\n",
      "4/5, train_loss: 0.5485\n",
      "5/5, train_loss: 0.5601\n",
      "6/5, train_loss: 0.4858\n",
      "epoch 142 average loss: 0.5511\n",
      "----------\n",
      "epoch 143/600\n",
      "1/5, train_loss: 0.6030\n",
      "2/5, train_loss: 0.5743\n",
      "3/5, train_loss: 0.5816\n",
      "4/5, train_loss: 0.5883\n",
      "5/5, train_loss: 0.5874\n",
      "6/5, train_loss: 0.5891\n",
      "epoch 143 average loss: 0.5873\n",
      "----------\n",
      "epoch 144/600\n",
      "1/5, train_loss: 0.5577\n",
      "2/5, train_loss: 0.5466\n",
      "3/5, train_loss: 0.5383\n",
      "4/5, train_loss: 0.5612\n",
      "5/5, train_loss: 0.5577\n",
      "6/5, train_loss: 0.5918\n",
      "epoch 144 average loss: 0.5589\n",
      "----------\n",
      "epoch 145/600\n",
      "1/5, train_loss: 0.5528\n",
      "2/5, train_loss: 0.5702\n",
      "3/5, train_loss: 0.5637\n",
      "4/5, train_loss: 0.5721\n",
      "5/5, train_loss: 0.5816\n",
      "6/5, train_loss: 0.6116\n",
      "epoch 145 average loss: 0.5753\n",
      "----------\n",
      "epoch 146/600\n",
      "1/5, train_loss: 0.5455\n",
      "2/5, train_loss: 0.5960\n",
      "3/5, train_loss: 0.5640\n",
      "4/5, train_loss: 0.5370\n",
      "5/5, train_loss: 0.5554\n",
      "6/5, train_loss: 0.5919\n",
      "epoch 146 average loss: 0.5650\n",
      "----------\n",
      "epoch 147/600\n",
      "1/5, train_loss: 0.5797\n",
      "2/5, train_loss: 0.5344\n",
      "3/5, train_loss: 0.5420\n",
      "4/5, train_loss: 0.5626\n",
      "5/5, train_loss: 0.5502\n",
      "6/5, train_loss: 0.5660\n",
      "epoch 147 average loss: 0.5558\n",
      "----------\n",
      "epoch 148/600\n",
      "1/5, train_loss: 0.5638\n",
      "2/5, train_loss: 0.5101\n",
      "3/5, train_loss: 0.5621\n",
      "4/5, train_loss: 0.5811\n",
      "5/5, train_loss: 0.5663\n",
      "6/5, train_loss: 0.6117\n",
      "epoch 148 average loss: 0.5658\n",
      "----------\n",
      "epoch 149/600\n",
      "1/5, train_loss: 0.5689\n",
      "2/5, train_loss: 0.5812\n",
      "3/5, train_loss: 0.5540\n",
      "4/5, train_loss: 0.5688\n",
      "5/5, train_loss: 0.5479\n",
      "6/5, train_loss: 0.5584\n",
      "epoch 149 average loss: 0.5632\n",
      "----------\n",
      "epoch 150/600\n",
      "1/5, train_loss: 0.5516\n",
      "2/5, train_loss: 0.5718\n",
      "3/5, train_loss: 0.5596\n",
      "4/5, train_loss: 0.5794\n",
      "5/5, train_loss: 0.5644\n",
      "6/5, train_loss: 0.5527\n",
      "epoch 150 average loss: 0.5632\n",
      "current epoch: 150 current mean dice: 0.0009 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 151/600\n",
      "1/5, train_loss: 0.5335\n",
      "2/5, train_loss: 0.5662\n",
      "3/5, train_loss: 0.5411\n",
      "4/5, train_loss: 0.6019\n",
      "5/5, train_loss: 0.5693\n",
      "6/5, train_loss: 0.5660\n",
      "epoch 151 average loss: 0.5630\n",
      "----------\n",
      "epoch 152/600\n",
      "1/5, train_loss: 0.5279\n",
      "2/5, train_loss: 0.5367\n",
      "3/5, train_loss: 0.5501\n",
      "4/5, train_loss: 0.5551\n",
      "5/5, train_loss: 0.5715\n",
      "6/5, train_loss: 0.5375\n",
      "epoch 152 average loss: 0.5465\n",
      "----------\n",
      "epoch 153/600\n",
      "1/5, train_loss: 0.5589\n",
      "2/5, train_loss: 0.5681\n",
      "3/5, train_loss: 0.5543\n",
      "4/5, train_loss: 0.6048\n",
      "5/5, train_loss: 0.5292\n",
      "6/5, train_loss: 0.5952\n",
      "epoch 153 average loss: 0.5684\n",
      "----------\n",
      "epoch 154/600\n",
      "1/5, train_loss: 0.5640\n",
      "2/5, train_loss: 0.5355\n",
      "3/5, train_loss: 0.5673\n",
      "4/5, train_loss: 0.5756\n",
      "5/5, train_loss: 0.5168\n",
      "6/5, train_loss: 0.5163\n",
      "epoch 154 average loss: 0.5459\n",
      "----------\n",
      "epoch 155/600\n",
      "1/5, train_loss: 0.5663\n",
      "2/5, train_loss: 0.5544\n",
      "3/5, train_loss: 0.5570\n",
      "4/5, train_loss: 0.5664\n",
      "5/5, train_loss: 0.5437\n",
      "6/5, train_loss: 0.5394\n",
      "epoch 155 average loss: 0.5545\n",
      "----------\n",
      "epoch 156/600\n",
      "1/5, train_loss: 0.5328\n",
      "2/5, train_loss: 0.5697\n",
      "3/5, train_loss: 0.5701\n",
      "4/5, train_loss: 0.5591\n",
      "5/5, train_loss: 0.5808\n",
      "6/5, train_loss: 0.5853\n",
      "epoch 156 average loss: 0.5663\n",
      "----------\n",
      "epoch 157/600\n",
      "1/5, train_loss: 0.5611\n",
      "2/5, train_loss: 0.5562\n",
      "3/5, train_loss: 0.5606\n",
      "4/5, train_loss: 0.5467\n",
      "5/5, train_loss: 0.5317\n",
      "6/5, train_loss: 0.5369\n",
      "epoch 157 average loss: 0.5489\n",
      "----------\n",
      "epoch 158/600\n",
      "1/5, train_loss: 0.5763\n",
      "2/5, train_loss: 0.5507\n",
      "3/5, train_loss: 0.5880\n",
      "4/5, train_loss: 0.5192\n",
      "5/5, train_loss: 0.5834\n",
      "6/5, train_loss: 0.5650\n",
      "epoch 158 average loss: 0.5638\n",
      "----------\n",
      "epoch 159/600\n",
      "1/5, train_loss: 0.5612\n",
      "2/5, train_loss: 0.5550\n",
      "3/5, train_loss: 0.5520\n",
      "4/5, train_loss: 0.5570\n",
      "5/5, train_loss: 0.5291\n",
      "6/5, train_loss: 0.5865\n",
      "epoch 159 average loss: 0.5568\n",
      "----------\n",
      "epoch 160/600\n",
      "1/5, train_loss: 0.5559\n",
      "2/5, train_loss: 0.5523\n",
      "3/5, train_loss: 0.5564\n",
      "4/5, train_loss: 0.5737\n",
      "5/5, train_loss: 0.5485\n",
      "6/5, train_loss: 0.5134\n",
      "epoch 160 average loss: 0.5500\n",
      "current epoch: 160 current mean dice: 0.0010 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 161/600\n",
      "1/5, train_loss: 0.5548\n",
      "2/5, train_loss: 0.5360\n",
      "3/5, train_loss: 0.5988\n",
      "4/5, train_loss: 0.5590\n",
      "5/5, train_loss: 0.5608\n",
      "6/5, train_loss: 0.5670\n",
      "epoch 161 average loss: 0.5627\n",
      "----------\n",
      "epoch 162/600\n",
      "1/5, train_loss: 0.5657\n",
      "2/5, train_loss: 0.5678\n",
      "3/5, train_loss: 0.5399\n",
      "4/5, train_loss: 0.5527\n",
      "5/5, train_loss: 0.5067\n",
      "6/5, train_loss: 0.5846\n",
      "epoch 162 average loss: 0.5529\n",
      "----------\n",
      "epoch 163/600\n",
      "1/5, train_loss: 0.5488\n",
      "2/5, train_loss: 0.5474\n",
      "3/5, train_loss: 0.5403\n",
      "4/5, train_loss: 0.5439\n",
      "5/5, train_loss: 0.5110\n",
      "6/5, train_loss: 0.4999\n",
      "epoch 163 average loss: 0.5319\n",
      "----------\n",
      "epoch 164/600\n",
      "1/5, train_loss: 0.5810\n",
      "2/5, train_loss: 0.5537\n",
      "3/5, train_loss: 0.5659\n",
      "4/5, train_loss: 0.5685\n",
      "5/5, train_loss: 0.5463\n",
      "6/5, train_loss: 0.5715\n",
      "epoch 164 average loss: 0.5645\n",
      "----------\n",
      "epoch 165/600\n",
      "1/5, train_loss: 0.5728\n",
      "2/5, train_loss: 0.5911\n",
      "3/5, train_loss: 0.5866\n",
      "4/5, train_loss: 0.5730\n",
      "5/5, train_loss: 0.5580\n",
      "6/5, train_loss: 0.5415\n",
      "epoch 165 average loss: 0.5705\n",
      "----------\n",
      "epoch 166/600\n",
      "1/5, train_loss: 0.5468\n",
      "2/5, train_loss: 0.5729\n",
      "3/5, train_loss: 0.5586\n",
      "4/5, train_loss: 0.5611\n",
      "5/5, train_loss: 0.5216\n",
      "6/5, train_loss: 0.5460\n",
      "epoch 166 average loss: 0.5512\n",
      "----------\n",
      "epoch 167/600\n",
      "1/5, train_loss: 0.5603\n",
      "2/5, train_loss: 0.5782\n",
      "3/5, train_loss: 0.5302\n",
      "4/5, train_loss: 0.5691\n",
      "5/5, train_loss: 0.5492\n",
      "6/5, train_loss: 0.5878\n",
      "epoch 167 average loss: 0.5625\n",
      "----------\n",
      "epoch 168/600\n",
      "1/5, train_loss: 0.5689\n",
      "2/5, train_loss: 0.5883\n",
      "3/5, train_loss: 0.5665\n",
      "4/5, train_loss: 0.5517\n",
      "5/5, train_loss: 0.5651\n",
      "6/5, train_loss: 0.5186\n",
      "epoch 168 average loss: 0.5598\n",
      "----------\n",
      "epoch 169/600\n",
      "1/5, train_loss: 0.5563\n",
      "2/5, train_loss: 0.5344\n",
      "3/5, train_loss: 0.5823\n",
      "4/5, train_loss: 0.5376\n",
      "5/5, train_loss: 0.5509\n",
      "6/5, train_loss: 0.5568\n",
      "epoch 169 average loss: 0.5531\n",
      "----------\n",
      "epoch 170/600\n",
      "1/5, train_loss: 0.5529\n",
      "2/5, train_loss: 0.5038\n",
      "3/5, train_loss: 0.5703\n",
      "4/5, train_loss: 0.5694\n",
      "5/5, train_loss: 0.5693\n",
      "6/5, train_loss: 0.5623\n",
      "epoch 170 average loss: 0.5547\n",
      "current epoch: 170 current mean dice: 0.0010 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 171/600\n",
      "1/5, train_loss: 0.5587\n",
      "2/5, train_loss: 0.5510\n",
      "3/5, train_loss: 0.5754\n",
      "4/5, train_loss: 0.5117\n",
      "5/5, train_loss: 0.5406\n",
      "6/5, train_loss: 0.5902\n",
      "epoch 171 average loss: 0.5546\n",
      "----------\n",
      "epoch 172/600\n",
      "1/5, train_loss: 0.5613\n",
      "2/5, train_loss: 0.5648\n",
      "3/5, train_loss: 0.5829\n",
      "4/5, train_loss: 0.5561\n",
      "5/5, train_loss: 0.5407\n",
      "6/5, train_loss: 0.5671\n",
      "epoch 172 average loss: 0.5621\n",
      "----------\n",
      "epoch 173/600\n",
      "1/5, train_loss: 0.5322\n",
      "2/5, train_loss: 0.5633\n",
      "3/5, train_loss: 0.5853\n",
      "4/5, train_loss: 0.5566\n",
      "5/5, train_loss: 0.5379\n",
      "6/5, train_loss: 0.5516\n",
      "epoch 173 average loss: 0.5545\n",
      "----------\n",
      "epoch 174/600\n",
      "1/5, train_loss: 0.5436\n",
      "2/5, train_loss: 0.5710\n",
      "3/5, train_loss: 0.5624\n",
      "4/5, train_loss: 0.5766\n",
      "5/5, train_loss: 0.5549\n",
      "6/5, train_loss: 0.5409\n",
      "epoch 174 average loss: 0.5582\n",
      "----------\n",
      "epoch 175/600\n",
      "1/5, train_loss: 0.5868\n",
      "2/5, train_loss: 0.5560\n",
      "3/5, train_loss: 0.5209\n",
      "4/5, train_loss: 0.5542\n",
      "5/5, train_loss: 0.5383\n",
      "6/5, train_loss: 0.5413\n",
      "epoch 175 average loss: 0.5496\n",
      "----------\n",
      "epoch 176/600\n",
      "1/5, train_loss: 0.5422\n",
      "2/5, train_loss: 0.5471\n",
      "3/5, train_loss: 0.5470\n",
      "4/5, train_loss: 0.5629\n",
      "5/5, train_loss: 0.5653\n",
      "6/5, train_loss: 0.5209\n",
      "epoch 176 average loss: 0.5476\n",
      "----------\n",
      "epoch 177/600\n",
      "1/5, train_loss: 0.5165\n",
      "2/5, train_loss: 0.5482\n",
      "3/5, train_loss: 0.5660\n",
      "4/5, train_loss: 0.5436\n",
      "5/5, train_loss: 0.5678\n",
      "6/5, train_loss: 0.5431\n",
      "epoch 177 average loss: 0.5476\n",
      "----------\n",
      "epoch 178/600\n",
      "1/5, train_loss: 0.5883\n",
      "2/5, train_loss: 0.5528\n",
      "3/5, train_loss: 0.5406\n",
      "4/5, train_loss: 0.5636\n",
      "5/5, train_loss: 0.5245\n",
      "6/5, train_loss: 0.5467\n",
      "epoch 178 average loss: 0.5527\n",
      "----------\n",
      "epoch 179/600\n",
      "1/5, train_loss: 0.5058\n",
      "2/5, train_loss: 0.5718\n",
      "3/5, train_loss: 0.5645\n",
      "4/5, train_loss: 0.5758\n",
      "5/5, train_loss: 0.5455\n",
      "6/5, train_loss: 0.4947\n",
      "epoch 179 average loss: 0.5430\n",
      "----------\n",
      "epoch 180/600\n",
      "1/5, train_loss: 0.5840\n",
      "2/5, train_loss: 0.5537\n",
      "3/5, train_loss: 0.5355\n",
      "4/5, train_loss: 0.5325\n",
      "5/5, train_loss: 0.5529\n",
      "6/5, train_loss: 0.5474\n",
      "epoch 180 average loss: 0.5510\n",
      "current epoch: 180 current mean dice: 0.0010 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 181/600\n",
      "1/5, train_loss: 0.5091\n",
      "2/5, train_loss: 0.5644\n",
      "3/5, train_loss: 0.5385\n",
      "4/5, train_loss: 0.5404\n",
      "5/5, train_loss: 0.5494\n",
      "6/5, train_loss: 0.5545\n",
      "epoch 181 average loss: 0.5427\n",
      "----------\n",
      "epoch 182/600\n",
      "1/5, train_loss: 0.5558\n",
      "2/5, train_loss: 0.5335\n",
      "3/5, train_loss: 0.5522\n",
      "4/5, train_loss: 0.5714\n",
      "5/5, train_loss: 0.5392\n",
      "6/5, train_loss: 0.5638\n",
      "epoch 182 average loss: 0.5526\n",
      "----------\n",
      "epoch 183/600\n",
      "1/5, train_loss: 0.5557\n",
      "2/5, train_loss: 0.5810\n",
      "3/5, train_loss: 0.5244\n",
      "4/5, train_loss: 0.5762\n",
      "5/5, train_loss: 0.5715\n",
      "6/5, train_loss: 0.5322\n",
      "epoch 183 average loss: 0.5568\n",
      "----------\n",
      "epoch 184/600\n",
      "1/5, train_loss: 0.5713\n",
      "2/5, train_loss: 0.5441\n",
      "3/5, train_loss: 0.5303\n",
      "4/5, train_loss: 0.5756\n",
      "5/5, train_loss: 0.5593\n",
      "6/5, train_loss: 0.5753\n",
      "epoch 184 average loss: 0.5593\n",
      "----------\n",
      "epoch 185/600\n",
      "1/5, train_loss: 0.5899\n",
      "2/5, train_loss: 0.5263\n",
      "3/5, train_loss: 0.5346\n",
      "4/5, train_loss: 0.5535\n",
      "5/5, train_loss: 0.4907\n",
      "6/5, train_loss: 0.5744\n",
      "epoch 185 average loss: 0.5449\n",
      "----------\n",
      "epoch 186/600\n",
      "1/5, train_loss: 0.5379\n",
      "2/5, train_loss: 0.5652\n",
      "3/5, train_loss: 0.5626\n",
      "4/5, train_loss: 0.5038\n",
      "5/5, train_loss: 0.5574\n",
      "6/5, train_loss: 0.5854\n",
      "epoch 186 average loss: 0.5520\n",
      "----------\n",
      "epoch 187/600\n",
      "1/5, train_loss: 0.5087\n",
      "2/5, train_loss: 0.5696\n",
      "3/5, train_loss: 0.5865\n",
      "4/5, train_loss: 0.5627\n",
      "5/5, train_loss: 0.5277\n",
      "6/5, train_loss: 0.5488\n",
      "epoch 187 average loss: 0.5507\n",
      "----------\n",
      "epoch 188/600\n",
      "1/5, train_loss: 0.5391\n",
      "2/5, train_loss: 0.5441\n",
      "3/5, train_loss: 0.5583\n",
      "4/5, train_loss: 0.5315\n",
      "5/5, train_loss: 0.5314\n",
      "6/5, train_loss: 0.5740\n",
      "epoch 188 average loss: 0.5464\n",
      "----------\n",
      "epoch 189/600\n",
      "1/5, train_loss: 0.5072\n",
      "2/5, train_loss: 0.5476\n",
      "3/5, train_loss: 0.5234\n",
      "4/5, train_loss: 0.5267\n",
      "5/5, train_loss: 0.5464\n",
      "6/5, train_loss: 0.5616\n",
      "epoch 189 average loss: 0.5355\n",
      "----------\n",
      "epoch 190/600\n",
      "1/5, train_loss: 0.5631\n",
      "2/5, train_loss: 0.5455\n",
      "3/5, train_loss: 0.5556\n",
      "4/5, train_loss: 0.5161\n",
      "5/5, train_loss: 0.5371\n",
      "6/5, train_loss: 0.5478\n",
      "epoch 190 average loss: 0.5442\n",
      "current epoch: 190 current mean dice: 0.0010 \n",
      "best mean dice: 0.0122  at epoch: 10\n",
      "----------\n",
      "epoch 191/600\n",
      "1/5, train_loss: 0.5230\n",
      "2/5, train_loss: 0.5491\n",
      "3/5, train_loss: 0.5668\n",
      "4/5, train_loss: 0.5677\n",
      "5/5, train_loss: 0.5411\n",
      "6/5, train_loss: 0.5484\n",
      "epoch 191 average loss: 0.5494\n",
      "----------\n",
      "epoch 192/600\n",
      "1/5, train_loss: 0.5242\n",
      "2/5, train_loss: 0.5704\n",
      "3/5, train_loss: 0.5686\n",
      "4/5, train_loss: 0.5726\n",
      "5/5, train_loss: 0.5101\n",
      "6/5, train_loss: 0.5582\n",
      "epoch 192 average loss: 0.5507\n",
      "----------\n",
      "epoch 193/600\n",
      "1/5, train_loss: 0.5936\n",
      "2/5, train_loss: 0.5541\n",
      "3/5, train_loss: 0.5909\n",
      "4/5, train_loss: 0.5638\n",
      "5/5, train_loss: 0.5414\n",
      "6/5, train_loss: 0.5412\n",
      "epoch 193 average loss: 0.5642\n",
      "----------\n",
      "epoch 194/600\n",
      "1/5, train_loss: 0.5143\n",
      "2/5, train_loss: 0.5497\n",
      "3/5, train_loss: 0.5470\n",
      "4/5, train_loss: 0.5773\n",
      "5/5, train_loss: 0.5838\n",
      "6/5, train_loss: 0.5291\n",
      "epoch 194 average loss: 0.5502\n",
      "----------\n",
      "epoch 195/600\n",
      "1/5, train_loss: 0.5395\n",
      "2/5, train_loss: 0.5375\n",
      "3/5, train_loss: 0.5366\n",
      "4/5, train_loss: 0.5210\n",
      "5/5, train_loss: 0.5824\n",
      "6/5, train_loss: 0.5819\n",
      "epoch 195 average loss: 0.5498\n",
      "----------\n",
      "epoch 196/600\n",
      "1/5, train_loss: 0.5493\n",
      "2/5, train_loss: 0.5656\n",
      "3/5, train_loss: 0.5370\n",
      "4/5, train_loss: 0.5859\n",
      "5/5, train_loss: 0.5696\n",
      "6/5, train_loss: 0.5543\n",
      "epoch 196 average loss: 0.5603\n",
      "----------\n",
      "epoch 197/600\n",
      "1/5, train_loss: 0.5148\n",
      "2/5, train_loss: 0.5456\n",
      "3/5, train_loss: 0.5580\n",
      "4/5, train_loss: 0.5870\n",
      "5/5, train_loss: 0.5564\n",
      "6/5, train_loss: 0.5820\n",
      "epoch 197 average loss: 0.5573\n",
      "----------\n",
      "epoch 198/600\n",
      "1/5, train_loss: 0.5611\n",
      "2/5, train_loss: 0.5530\n",
      "3/5, train_loss: 0.5313\n",
      "4/5, train_loss: 0.5704\n",
      "5/5, train_loss: 0.5507\n",
      "6/5, train_loss: 0.5027\n",
      "epoch 198 average loss: 0.5449\n",
      "----------\n",
      "epoch 199/600\n",
      "1/5, train_loss: 0.5480\n",
      "2/5, train_loss: 0.5601\n",
      "3/5, train_loss: 0.5833\n",
      "4/5, train_loss: 0.5713\n",
      "5/5, train_loss: 0.5664\n",
      "6/5, train_loss: 0.5737\n",
      "epoch 199 average loss: 0.5671\n",
      "----------\n",
      "epoch 200/600\n",
      "1/5, train_loss: 0.5372\n",
      "2/5, train_loss: 0.5262\n",
      "3/5, train_loss: 0.4933\n",
      "4/5, train_loss: 0.5204\n",
      "5/5, train_loss: 0.5312\n",
      "6/5, train_loss: 0.5746\n",
      "epoch 200 average loss: 0.5305\n",
      "aim name Task002_Heart_AttentionUnet\n",
      "saved new best metric model at the 200th epoch\n",
      "current epoch: 200 current mean dice: 0.0139 \n",
      "best mean dice: 0.0139  at epoch: 200\n",
      "----------\n",
      "epoch 201/600\n",
      "1/5, train_loss: 0.5626\n",
      "2/5, train_loss: 0.5639\n",
      "3/5, train_loss: 0.5296\n",
      "4/5, train_loss: 0.5210\n",
      "5/5, train_loss: 0.5472\n",
      "6/5, train_loss: 0.5452\n",
      "epoch 201 average loss: 0.5449\n",
      "----------\n",
      "epoch 202/600\n",
      "1/5, train_loss: 0.5365\n",
      "2/5, train_loss: 0.5408\n",
      "3/5, train_loss: 0.5520\n",
      "4/5, train_loss: 0.5791\n",
      "5/5, train_loss: 0.5041\n",
      "6/5, train_loss: 0.5327\n",
      "epoch 202 average loss: 0.5409\n",
      "----------\n",
      "epoch 203/600\n",
      "1/5, train_loss: 0.5617\n",
      "2/5, train_loss: 0.5212\n",
      "3/5, train_loss: 0.5401\n",
      "4/5, train_loss: 0.5478\n",
      "5/5, train_loss: 0.5694\n",
      "6/5, train_loss: 0.5680\n",
      "epoch 203 average loss: 0.5514\n",
      "----------\n",
      "epoch 204/600\n",
      "1/5, train_loss: 0.5456\n",
      "2/5, train_loss: 0.5435\n",
      "3/5, train_loss: 0.5672\n",
      "4/5, train_loss: 0.5702\n",
      "5/5, train_loss: 0.5438\n",
      "6/5, train_loss: 0.5672\n",
      "epoch 204 average loss: 0.5563\n",
      "----------\n",
      "epoch 205/600\n",
      "1/5, train_loss: 0.5207\n",
      "2/5, train_loss: 0.5380\n",
      "3/5, train_loss: 0.5362\n",
      "4/5, train_loss: 0.5355\n",
      "5/5, train_loss: 0.5520\n",
      "6/5, train_loss: 0.4501\n",
      "epoch 205 average loss: 0.5221\n",
      "----------\n",
      "epoch 206/600\n",
      "1/5, train_loss: 0.5480\n",
      "2/5, train_loss: 0.5364\n",
      "3/5, train_loss: 0.5642\n",
      "4/5, train_loss: 0.5004\n",
      "5/5, train_loss: 0.5393\n",
      "6/5, train_loss: 0.5332\n",
      "epoch 206 average loss: 0.5369\n",
      "----------\n",
      "epoch 207/600\n",
      "1/5, train_loss: 0.5460\n",
      "2/5, train_loss: 0.5075\n",
      "3/5, train_loss: 0.5239\n",
      "4/5, train_loss: 0.4994\n",
      "5/5, train_loss: 0.5582\n",
      "6/5, train_loss: 0.5725\n",
      "epoch 207 average loss: 0.5346\n",
      "----------\n",
      "epoch 208/600\n",
      "1/5, train_loss: 0.5655\n",
      "2/5, train_loss: 0.5255\n",
      "3/5, train_loss: 0.5109\n",
      "4/5, train_loss: 0.5255\n",
      "5/5, train_loss: 0.5326\n",
      "6/5, train_loss: 0.5503\n",
      "epoch 208 average loss: 0.5350\n",
      "----------\n",
      "epoch 209/600\n",
      "1/5, train_loss: 0.5381\n",
      "2/5, train_loss: 0.5569\n",
      "3/5, train_loss: 0.5305\n",
      "4/5, train_loss: 0.5234\n",
      "5/5, train_loss: 0.5313\n",
      "6/5, train_loss: 0.5440\n",
      "epoch 209 average loss: 0.5374\n",
      "----------\n",
      "epoch 210/600\n",
      "1/5, train_loss: 0.5136\n",
      "2/5, train_loss: 0.5618\n",
      "3/5, train_loss: 0.5181\n",
      "4/5, train_loss: 0.5405\n",
      "5/5, train_loss: 0.5760\n",
      "6/5, train_loss: 0.5198\n",
      "epoch 210 average loss: 0.5383\n",
      "current epoch: 210 current mean dice: 0.0009 \n",
      "best mean dice: 0.0139  at epoch: 200\n",
      "----------\n",
      "epoch 211/600\n",
      "1/5, train_loss: 0.5595\n",
      "2/5, train_loss: 0.5426\n",
      "3/5, train_loss: 0.4960\n",
      "4/5, train_loss: 0.5778\n",
      "5/5, train_loss: 0.5335\n",
      "6/5, train_loss: 0.5427\n",
      "epoch 211 average loss: 0.5420\n",
      "----------\n",
      "epoch 212/600\n",
      "1/5, train_loss: 0.5269\n",
      "2/5, train_loss: 0.5495\n",
      "3/5, train_loss: 0.5472\n",
      "4/5, train_loss: 0.5371\n",
      "5/5, train_loss: 0.5424\n",
      "6/5, train_loss: 0.5283\n",
      "epoch 212 average loss: 0.5386\n",
      "----------\n",
      "epoch 213/600\n",
      "1/5, train_loss: 0.5410\n",
      "2/5, train_loss: 0.5956\n",
      "3/5, train_loss: 0.5177\n",
      "4/5, train_loss: 0.5631\n",
      "5/5, train_loss: 0.5361\n",
      "6/5, train_loss: 0.5583\n",
      "epoch 213 average loss: 0.5520\n",
      "----------\n",
      "epoch 214/600\n",
      "1/5, train_loss: 0.5860\n",
      "2/5, train_loss: 0.5306\n",
      "3/5, train_loss: 0.5795\n",
      "4/5, train_loss: 0.5883\n",
      "5/5, train_loss: 0.5275\n",
      "6/5, train_loss: 0.5716\n",
      "epoch 214 average loss: 0.5639\n",
      "----------\n",
      "epoch 215/600\n",
      "1/5, train_loss: 0.5223\n",
      "2/5, train_loss: 0.5085\n",
      "3/5, train_loss: 0.5347\n",
      "4/5, train_loss: 0.5299\n",
      "5/5, train_loss: 0.5579\n",
      "6/5, train_loss: 0.5002\n",
      "epoch 215 average loss: 0.5256\n",
      "----------\n",
      "epoch 216/600\n",
      "1/5, train_loss: 0.5474\n",
      "2/5, train_loss: 0.5674\n",
      "3/5, train_loss: 0.5610\n",
      "4/5, train_loss: 0.5663\n",
      "5/5, train_loss: 0.5489\n",
      "6/5, train_loss: 0.5519\n",
      "epoch 216 average loss: 0.5572\n",
      "----------\n",
      "epoch 217/600\n",
      "1/5, train_loss: 0.5140\n",
      "2/5, train_loss: 0.5386\n",
      "3/5, train_loss: 0.5798\n",
      "4/5, train_loss: 0.5295\n",
      "5/5, train_loss: 0.5572\n",
      "6/5, train_loss: 0.4815\n",
      "epoch 217 average loss: 0.5334\n",
      "----------\n",
      "epoch 218/600\n",
      "1/5, train_loss: 0.5723\n",
      "2/5, train_loss: 0.5554\n",
      "3/5, train_loss: 0.5491\n",
      "4/5, train_loss: 0.4950\n",
      "5/5, train_loss: 0.5617\n",
      "6/5, train_loss: 0.5158\n",
      "epoch 218 average loss: 0.5416\n",
      "----------\n",
      "epoch 219/600\n",
      "1/5, train_loss: 0.5250\n",
      "2/5, train_loss: 0.5303\n",
      "3/5, train_loss: 0.5400\n",
      "4/5, train_loss: 0.5416\n",
      "5/5, train_loss: 0.5434\n",
      "6/5, train_loss: 0.5139\n",
      "epoch 219 average loss: 0.5324\n",
      "----------\n",
      "epoch 220/600\n",
      "1/5, train_loss: 0.5052\n",
      "2/5, train_loss: 0.5498\n",
      "3/5, train_loss: 0.5574\n",
      "4/5, train_loss: 0.5285\n",
      "5/5, train_loss: 0.5581\n",
      "6/5, train_loss: 0.5004\n",
      "epoch 220 average loss: 0.5332\n",
      "current epoch: 220 current mean dice: 0.0011 \n",
      "best mean dice: 0.0139  at epoch: 200\n",
      "----------\n",
      "epoch 221/600\n",
      "1/5, train_loss: 0.5137\n",
      "2/5, train_loss: 0.5499\n",
      "3/5, train_loss: 0.5639\n",
      "4/5, train_loss: 0.5192\n",
      "5/5, train_loss: 0.5425\n",
      "6/5, train_loss: 0.5129\n",
      "epoch 221 average loss: 0.5337\n",
      "----------\n",
      "epoch 222/600\n",
      "1/5, train_loss: 0.5474\n",
      "2/5, train_loss: 0.4938\n",
      "3/5, train_loss: 0.5301\n",
      "4/5, train_loss: 0.5318\n",
      "5/5, train_loss: 0.5443\n",
      "6/5, train_loss: 0.5588\n",
      "epoch 222 average loss: 0.5344\n",
      "----------\n",
      "epoch 223/600\n",
      "1/5, train_loss: 0.5121\n",
      "2/5, train_loss: 0.5366\n",
      "3/5, train_loss: 0.5664\n",
      "4/5, train_loss: 0.5419\n",
      "5/5, train_loss: 0.5145\n",
      "6/5, train_loss: 0.5846\n",
      "epoch 223 average loss: 0.5427\n",
      "----------\n",
      "epoch 224/600\n",
      "1/5, train_loss: 0.5789\n",
      "2/5, train_loss: 0.5748\n",
      "3/5, train_loss: 0.5078\n",
      "4/5, train_loss: 0.5507\n",
      "5/5, train_loss: 0.5682\n",
      "6/5, train_loss: 0.5497\n",
      "epoch 224 average loss: 0.5550\n",
      "----------\n",
      "epoch 225/600\n",
      "1/5, train_loss: 0.5467\n",
      "2/5, train_loss: 0.5048\n",
      "3/5, train_loss: 0.5215\n",
      "4/5, train_loss: 0.5760\n",
      "5/5, train_loss: 0.5636\n",
      "6/5, train_loss: 0.5481\n",
      "epoch 225 average loss: 0.5435\n",
      "----------\n",
      "epoch 226/600\n",
      "1/5, train_loss: 0.5261\n",
      "2/5, train_loss: 0.5042\n",
      "3/5, train_loss: 0.5604\n",
      "4/5, train_loss: 0.5556\n",
      "5/5, train_loss: 0.5276\n",
      "6/5, train_loss: 0.5081\n",
      "epoch 226 average loss: 0.5303\n",
      "----------\n",
      "epoch 227/600\n",
      "1/5, train_loss: 0.5161\n",
      "2/5, train_loss: 0.5368\n",
      "3/5, train_loss: 0.5507\n",
      "4/5, train_loss: 0.5263\n",
      "5/5, train_loss: 0.5365\n",
      "6/5, train_loss: 0.4982\n",
      "epoch 227 average loss: 0.5274\n",
      "----------\n",
      "epoch 228/600\n",
      "1/5, train_loss: 0.5204\n",
      "2/5, train_loss: 0.4998\n",
      "3/5, train_loss: 0.4931\n",
      "4/5, train_loss: 0.5607\n",
      "5/5, train_loss: 0.5903\n",
      "6/5, train_loss: 0.5766\n",
      "epoch 228 average loss: 0.5401\n",
      "----------\n",
      "epoch 229/600\n",
      "1/5, train_loss: 0.5161\n",
      "2/5, train_loss: 0.5294\n",
      "3/5, train_loss: 0.5812\n",
      "4/5, train_loss: 0.5416\n",
      "5/5, train_loss: 0.5001\n",
      "6/5, train_loss: 0.5000\n",
      "epoch 229 average loss: 0.5281\n",
      "----------\n",
      "epoch 230/600\n",
      "1/5, train_loss: 0.5214\n",
      "2/5, train_loss: 0.5025\n",
      "3/5, train_loss: 0.5187\n",
      "4/5, train_loss: 0.5637\n",
      "5/5, train_loss: 0.5553\n",
      "6/5, train_loss: 0.5571\n",
      "epoch 230 average loss: 0.5365\n",
      "current epoch: 230 current mean dice: 0.0021 \n",
      "best mean dice: 0.0139  at epoch: 200\n",
      "----------\n",
      "epoch 231/600\n",
      "1/5, train_loss: 0.5363\n",
      "2/5, train_loss: 0.5180\n",
      "3/5, train_loss: 0.5389\n",
      "4/5, train_loss: 0.5583\n",
      "5/5, train_loss: 0.5808\n",
      "6/5, train_loss: 0.5125\n",
      "epoch 231 average loss: 0.5408\n",
      "----------\n",
      "epoch 232/600\n",
      "1/5, train_loss: 0.5499\n",
      "2/5, train_loss: 0.5674\n",
      "3/5, train_loss: 0.5456\n",
      "4/5, train_loss: 0.5273\n",
      "5/5, train_loss: 0.5356\n",
      "6/5, train_loss: 0.5122\n",
      "epoch 232 average loss: 0.5396\n",
      "----------\n",
      "epoch 233/600\n",
      "1/5, train_loss: 0.5559\n",
      "2/5, train_loss: 0.5307\n",
      "3/5, train_loss: 0.5444\n",
      "4/5, train_loss: 0.5285\n",
      "5/5, train_loss: 0.5489\n",
      "6/5, train_loss: 0.5395\n",
      "epoch 233 average loss: 0.5413\n",
      "----------\n",
      "epoch 234/600\n",
      "1/5, train_loss: 0.5675\n",
      "2/5, train_loss: 0.5273\n",
      "3/5, train_loss: 0.5311\n",
      "4/5, train_loss: 0.5507\n",
      "5/5, train_loss: 0.5621\n",
      "6/5, train_loss: 0.5541\n",
      "epoch 234 average loss: 0.5488\n",
      "----------\n",
      "epoch 235/600\n",
      "1/5, train_loss: 0.4936\n",
      "2/5, train_loss: 0.5070\n",
      "3/5, train_loss: 0.5120\n",
      "4/5, train_loss: 0.5258\n",
      "5/5, train_loss: 0.5445\n",
      "6/5, train_loss: 0.5148\n",
      "epoch 235 average loss: 0.5163\n",
      "----------\n",
      "epoch 236/600\n",
      "1/5, train_loss: 0.4988\n",
      "2/5, train_loss: 0.5749\n",
      "3/5, train_loss: 0.5375\n",
      "4/5, train_loss: 0.5552\n",
      "5/5, train_loss: 0.5312\n",
      "6/5, train_loss: 0.5305\n",
      "epoch 236 average loss: 0.5380\n",
      "----------\n",
      "epoch 237/600\n",
      "1/5, train_loss: 0.5395\n",
      "2/5, train_loss: 0.5553\n",
      "3/5, train_loss: 0.5203\n",
      "4/5, train_loss: 0.5115\n",
      "5/5, train_loss: 0.5298\n",
      "6/5, train_loss: 0.5343\n",
      "epoch 237 average loss: 0.5318\n",
      "----------\n",
      "epoch 238/600\n",
      "1/5, train_loss: 0.5070\n",
      "2/5, train_loss: 0.5516\n",
      "3/5, train_loss: 0.5726\n",
      "4/5, train_loss: 0.5666\n",
      "5/5, train_loss: 0.5571\n",
      "6/5, train_loss: 0.5126\n",
      "epoch 238 average loss: 0.5446\n",
      "----------\n",
      "epoch 239/600\n",
      "1/5, train_loss: 0.5297\n",
      "2/5, train_loss: 0.5270\n",
      "3/5, train_loss: 0.5575\n",
      "4/5, train_loss: 0.5323\n",
      "5/5, train_loss: 0.5634\n",
      "6/5, train_loss: 0.5824\n",
      "epoch 239 average loss: 0.5487\n",
      "----------\n",
      "epoch 240/600\n",
      "1/5, train_loss: 0.5400\n",
      "2/5, train_loss: 0.5634\n",
      "3/5, train_loss: 0.5768\n",
      "4/5, train_loss: 0.5294\n",
      "5/5, train_loss: 0.5205\n",
      "6/5, train_loss: 0.5656\n",
      "epoch 240 average loss: 0.5493\n",
      "current epoch: 240 current mean dice: 0.0020 \n",
      "best mean dice: 0.0139  at epoch: 200\n",
      "----------\n",
      "epoch 241/600\n",
      "1/5, train_loss: 0.5138\n",
      "2/5, train_loss: 0.5425\n",
      "3/5, train_loss: 0.5603\n",
      "4/5, train_loss: 0.5562\n",
      "5/5, train_loss: 0.5168\n",
      "6/5, train_loss: 0.5718\n",
      "epoch 241 average loss: 0.5436\n",
      "----------\n",
      "epoch 242/600\n",
      "1/5, train_loss: 0.5504\n",
      "2/5, train_loss: 0.5350\n",
      "3/5, train_loss: 0.5866\n",
      "4/5, train_loss: 0.5398\n",
      "5/5, train_loss: 0.4670\n",
      "6/5, train_loss: 0.5388\n",
      "epoch 242 average loss: 0.5363\n",
      "----------\n",
      "epoch 243/600\n",
      "1/5, train_loss: 0.5111\n",
      "2/5, train_loss: 0.5111\n",
      "3/5, train_loss: 0.5196\n",
      "4/5, train_loss: 0.5466\n",
      "5/5, train_loss: 0.5577\n",
      "6/5, train_loss: 0.5305\n",
      "epoch 243 average loss: 0.5294\n",
      "----------\n",
      "epoch 244/600\n",
      "1/5, train_loss: 0.5848\n",
      "2/5, train_loss: 0.5426\n",
      "3/5, train_loss: 0.5325\n",
      "4/5, train_loss: 0.5470\n",
      "5/5, train_loss: 0.5341\n",
      "6/5, train_loss: 0.5496\n",
      "epoch 244 average loss: 0.5484\n",
      "----------\n",
      "epoch 245/600\n",
      "1/5, train_loss: 0.5411\n",
      "2/5, train_loss: 0.4958\n",
      "3/5, train_loss: 0.5846\n",
      "4/5, train_loss: 0.5110\n",
      "5/5, train_loss: 0.5451\n",
      "6/5, train_loss: 0.5742\n",
      "epoch 245 average loss: 0.5420\n",
      "----------\n",
      "epoch 246/600\n",
      "1/5, train_loss: 0.5357\n",
      "2/5, train_loss: 0.5165\n",
      "3/5, train_loss: 0.5764\n",
      "4/5, train_loss: 0.5208\n",
      "5/5, train_loss: 0.5675\n",
      "6/5, train_loss: 0.5420\n",
      "epoch 246 average loss: 0.5432\n",
      "----------\n",
      "epoch 247/600\n",
      "1/5, train_loss: 0.5380\n",
      "2/5, train_loss: 0.5699\n",
      "3/5, train_loss: 0.5787\n",
      "4/5, train_loss: 0.5574\n",
      "5/5, train_loss: 0.5302\n",
      "6/5, train_loss: 0.5066\n",
      "epoch 247 average loss: 0.5468\n",
      "----------\n",
      "epoch 248/600\n",
      "1/5, train_loss: 0.5085\n",
      "2/5, train_loss: 0.5710\n",
      "3/5, train_loss: 0.5601\n",
      "4/5, train_loss: 0.5420\n",
      "5/5, train_loss: 0.5719\n",
      "6/5, train_loss: 0.5120\n",
      "epoch 248 average loss: 0.5442\n",
      "----------\n",
      "epoch 249/600\n",
      "1/5, train_loss: 0.4812\n",
      "2/5, train_loss: 0.5367\n",
      "3/5, train_loss: 0.5393\n",
      "4/5, train_loss: 0.5416\n",
      "5/5, train_loss: 0.5566\n",
      "6/5, train_loss: 0.5150\n",
      "epoch 249 average loss: 0.5284\n",
      "----------\n",
      "epoch 250/600\n",
      "1/5, train_loss: 0.5209\n",
      "2/5, train_loss: 0.4818\n",
      "3/5, train_loss: 0.5255\n",
      "4/5, train_loss: 0.5439\n",
      "5/5, train_loss: 0.5626\n",
      "6/5, train_loss: 0.4972\n",
      "epoch 250 average loss: 0.5220\n",
      "aim name Task002_Heart_AttentionUnet\n",
      "saved new best metric model at the 250th epoch\n",
      "current epoch: 250 current mean dice: 0.0185 \n",
      "best mean dice: 0.0185  at epoch: 250\n",
      "----------\n",
      "epoch 251/600\n",
      "1/5, train_loss: 0.5085\n",
      "2/5, train_loss: 0.5400\n",
      "3/5, train_loss: 0.5085\n",
      "4/5, train_loss: 0.5444\n",
      "5/5, train_loss: 0.5348\n",
      "6/5, train_loss: 0.5980\n",
      "epoch 251 average loss: 0.5390\n",
      "----------\n",
      "epoch 252/600\n",
      "1/5, train_loss: 0.5482\n",
      "2/5, train_loss: 0.5631\n",
      "3/5, train_loss: 0.5107\n",
      "4/5, train_loss: 0.5268\n",
      "5/5, train_loss: 0.5058\n",
      "6/5, train_loss: 0.5294\n",
      "epoch 252 average loss: 0.5307\n",
      "----------\n",
      "epoch 253/600\n",
      "1/5, train_loss: 0.5080\n",
      "2/5, train_loss: 0.5283\n",
      "3/5, train_loss: 0.5343\n",
      "4/5, train_loss: 0.5266\n",
      "5/5, train_loss: 0.4980\n",
      "6/5, train_loss: 0.5329\n",
      "epoch 253 average loss: 0.5213\n",
      "----------\n",
      "epoch 254/600\n",
      "1/5, train_loss: 0.5798\n",
      "2/5, train_loss: 0.4964\n",
      "3/5, train_loss: 0.4628\n",
      "4/5, train_loss: 0.5664\n",
      "5/5, train_loss: 0.5287\n",
      "6/5, train_loss: 0.5285\n",
      "epoch 254 average loss: 0.5271\n",
      "----------\n",
      "epoch 255/600\n",
      "1/5, train_loss: 0.5394\n",
      "2/5, train_loss: 0.4763\n",
      "3/5, train_loss: 0.5416\n",
      "4/5, train_loss: 0.5250\n",
      "5/5, train_loss: 0.5088\n",
      "6/5, train_loss: 0.5633\n",
      "epoch 255 average loss: 0.5257\n",
      "----------\n",
      "epoch 256/600\n",
      "1/5, train_loss: 0.5556\n",
      "2/5, train_loss: 0.5174\n",
      "3/5, train_loss: 0.5103\n",
      "4/5, train_loss: 0.5646\n",
      "5/5, train_loss: 0.5283\n",
      "6/5, train_loss: 0.5578\n",
      "epoch 256 average loss: 0.5390\n",
      "----------\n",
      "epoch 257/600\n",
      "1/5, train_loss: 0.4690\n",
      "2/5, train_loss: 0.5198\n",
      "3/5, train_loss: 0.5714\n",
      "4/5, train_loss: 0.5412\n",
      "5/5, train_loss: 0.5339\n",
      "6/5, train_loss: 0.5114\n",
      "epoch 257 average loss: 0.5245\n",
      "----------\n",
      "epoch 258/600\n",
      "1/5, train_loss: 0.5165\n",
      "2/5, train_loss: 0.5405\n",
      "3/5, train_loss: 0.5538\n",
      "4/5, train_loss: 0.5534\n",
      "5/5, train_loss: 0.5371\n",
      "6/5, train_loss: 0.5376\n",
      "epoch 258 average loss: 0.5398\n",
      "----------\n",
      "epoch 259/600\n",
      "1/5, train_loss: 0.5176\n",
      "2/5, train_loss: 0.5150\n",
      "3/5, train_loss: 0.5549\n",
      "4/5, train_loss: 0.5587\n",
      "5/5, train_loss: 0.5243\n",
      "6/5, train_loss: 0.5045\n",
      "epoch 259 average loss: 0.5292\n",
      "----------\n",
      "epoch 260/600\n",
      "1/5, train_loss: 0.5495\n",
      "2/5, train_loss: 0.4970\n",
      "3/5, train_loss: 0.5379\n",
      "4/5, train_loss: 0.5395\n",
      "5/5, train_loss: 0.5616\n",
      "6/5, train_loss: 0.4816\n",
      "epoch 260 average loss: 0.5278\n",
      "current epoch: 260 current mean dice: 0.0133 \n",
      "best mean dice: 0.0185  at epoch: 250\n",
      "----------\n",
      "epoch 261/600\n",
      "1/5, train_loss: 0.4818\n",
      "2/5, train_loss: 0.5174\n",
      "3/5, train_loss: 0.4998\n",
      "4/5, train_loss: 0.5472\n",
      "5/5, train_loss: 0.5519\n",
      "6/5, train_loss: 0.5410\n",
      "epoch 261 average loss: 0.5232\n",
      "----------\n",
      "epoch 262/600\n",
      "1/5, train_loss: 0.5311\n",
      "2/5, train_loss: 0.5198\n",
      "3/5, train_loss: 0.5408\n",
      "4/5, train_loss: 0.5378\n",
      "5/5, train_loss: 0.5255\n",
      "6/5, train_loss: 0.5643\n",
      "epoch 262 average loss: 0.5366\n",
      "----------\n",
      "epoch 263/600\n",
      "1/5, train_loss: 0.5631\n",
      "2/5, train_loss: 0.5464\n",
      "3/5, train_loss: 0.5112\n",
      "4/5, train_loss: 0.5469\n",
      "5/5, train_loss: 0.5145\n",
      "6/5, train_loss: 0.5371\n",
      "epoch 263 average loss: 0.5366\n",
      "----------\n",
      "epoch 264/600\n",
      "1/5, train_loss: 0.5188\n",
      "2/5, train_loss: 0.5183\n",
      "3/5, train_loss: 0.5365\n",
      "4/5, train_loss: 0.5438\n",
      "5/5, train_loss: 0.5605\n",
      "6/5, train_loss: 0.5080\n",
      "epoch 264 average loss: 0.5310\n",
      "----------\n",
      "epoch 265/600\n",
      "1/5, train_loss: 0.5137\n",
      "2/5, train_loss: 0.5041\n",
      "3/5, train_loss: 0.4946\n",
      "4/5, train_loss: 0.5202\n",
      "5/5, train_loss: 0.5417\n",
      "6/5, train_loss: 0.5273\n",
      "epoch 265 average loss: 0.5169\n",
      "----------\n",
      "epoch 266/600\n",
      "1/5, train_loss: 0.5374\n",
      "2/5, train_loss: 0.5659\n",
      "3/5, train_loss: 0.5354\n",
      "4/5, train_loss: 0.5504\n",
      "5/5, train_loss: 0.4889\n",
      "6/5, train_loss: 0.5427\n",
      "epoch 266 average loss: 0.5368\n",
      "----------\n",
      "epoch 267/600\n",
      "1/5, train_loss: 0.5100\n",
      "2/5, train_loss: 0.5528\n",
      "3/5, train_loss: 0.5476\n",
      "4/5, train_loss: 0.5388\n",
      "5/5, train_loss: 0.5118\n",
      "6/5, train_loss: 0.5565\n",
      "epoch 267 average loss: 0.5362\n",
      "----------\n",
      "epoch 268/600\n",
      "1/5, train_loss: 0.4953\n",
      "2/5, train_loss: 0.5420\n",
      "3/5, train_loss: 0.5726\n",
      "4/5, train_loss: 0.5212\n",
      "5/5, train_loss: 0.5105\n",
      "6/5, train_loss: 0.5863\n",
      "epoch 268 average loss: 0.5380\n",
      "----------\n",
      "epoch 269/600\n",
      "1/5, train_loss: 0.5258\n",
      "2/5, train_loss: 0.5318\n",
      "3/5, train_loss: 0.5363\n",
      "4/5, train_loss: 0.5251\n",
      "5/5, train_loss: 0.4683\n",
      "6/5, train_loss: 0.5506\n",
      "epoch 269 average loss: 0.5230\n",
      "----------\n",
      "epoch 270/600\n",
      "1/5, train_loss: 0.5581\n",
      "2/5, train_loss: 0.5215\n",
      "3/5, train_loss: 0.5309\n",
      "4/5, train_loss: 0.5592\n",
      "5/5, train_loss: 0.5111\n",
      "6/5, train_loss: 0.5091\n",
      "epoch 270 average loss: 0.5316\n",
      "current epoch: 270 current mean dice: 0.0013 \n",
      "best mean dice: 0.0185  at epoch: 250\n",
      "----------\n",
      "epoch 271/600\n",
      "1/5, train_loss: 0.5258\n",
      "2/5, train_loss: 0.5540\n",
      "3/5, train_loss: 0.5115\n",
      "4/5, train_loss: 0.5458\n",
      "5/5, train_loss: 0.5287\n",
      "6/5, train_loss: 0.5078\n",
      "epoch 271 average loss: 0.5289\n",
      "----------\n",
      "epoch 272/600\n",
      "1/5, train_loss: 0.5168\n",
      "2/5, train_loss: 0.5069\n",
      "3/5, train_loss: 0.5278\n",
      "4/5, train_loss: 0.5564\n",
      "5/5, train_loss: 0.5084\n",
      "6/5, train_loss: 0.5429\n",
      "epoch 272 average loss: 0.5265\n",
      "----------\n",
      "epoch 273/600\n",
      "1/5, train_loss: 0.5028\n",
      "2/5, train_loss: 0.5632\n",
      "3/5, train_loss: 0.5087\n",
      "4/5, train_loss: 0.5294\n",
      "5/5, train_loss: 0.5122\n",
      "6/5, train_loss: 0.5583\n",
      "epoch 273 average loss: 0.5291\n",
      "----------\n",
      "epoch 274/600\n",
      "1/5, train_loss: 0.5364\n",
      "2/5, train_loss: 0.5007\n",
      "3/5, train_loss: 0.5101\n",
      "4/5, train_loss: 0.5428\n",
      "5/5, train_loss: 0.5125\n",
      "6/5, train_loss: 0.5659\n",
      "epoch 274 average loss: 0.5281\n",
      "----------\n",
      "epoch 275/600\n",
      "1/5, train_loss: 0.5511\n",
      "2/5, train_loss: 0.5267\n",
      "3/5, train_loss: 0.5026\n",
      "4/5, train_loss: 0.5178\n",
      "5/5, train_loss: 0.4968\n",
      "6/5, train_loss: 0.5386\n",
      "epoch 275 average loss: 0.5223\n",
      "----------\n",
      "epoch 276/600\n",
      "1/5, train_loss: 0.5048\n",
      "2/5, train_loss: 0.5202\n",
      "3/5, train_loss: 0.5039\n",
      "4/5, train_loss: 0.5379\n",
      "5/5, train_loss: 0.5115\n",
      "6/5, train_loss: 0.5318\n",
      "epoch 276 average loss: 0.5184\n",
      "----------\n",
      "epoch 277/600\n",
      "1/5, train_loss: 0.5393\n",
      "2/5, train_loss: 0.5366\n",
      "3/5, train_loss: 0.5246\n",
      "4/5, train_loss: 0.4948\n",
      "5/5, train_loss: 0.5482\n",
      "6/5, train_loss: 0.5494\n",
      "epoch 277 average loss: 0.5321\n",
      "----------\n",
      "epoch 278/600\n",
      "1/5, train_loss: 0.5223\n",
      "2/5, train_loss: 0.5299\n",
      "3/5, train_loss: 0.5572\n",
      "4/5, train_loss: 0.5555\n",
      "5/5, train_loss: 0.5030\n",
      "6/5, train_loss: 0.5268\n",
      "epoch 278 average loss: 0.5324\n",
      "----------\n",
      "epoch 279/600\n",
      "1/5, train_loss: 0.4992\n",
      "2/5, train_loss: 0.5182\n",
      "3/5, train_loss: 0.5809\n",
      "4/5, train_loss: 0.5260\n",
      "5/5, train_loss: 0.5453\n",
      "6/5, train_loss: 0.5354\n",
      "epoch 279 average loss: 0.5342\n",
      "----------\n",
      "epoch 280/600\n",
      "1/5, train_loss: 0.5229\n",
      "2/5, train_loss: 0.5119\n",
      "3/5, train_loss: 0.5621\n",
      "4/5, train_loss: 0.5142\n",
      "5/5, train_loss: 0.5170\n",
      "6/5, train_loss: 0.5396\n",
      "epoch 280 average loss: 0.5280\n",
      "current epoch: 280 current mean dice: 0.0012 \n",
      "best mean dice: 0.0185  at epoch: 250\n",
      "----------\n",
      "epoch 281/600\n",
      "1/5, train_loss: 0.5427\n",
      "2/5, train_loss: 0.5456\n",
      "3/5, train_loss: 0.5344\n",
      "4/5, train_loss: 0.5174\n",
      "5/5, train_loss: 0.5224\n",
      "6/5, train_loss: 0.5543\n",
      "epoch 281 average loss: 0.5361\n",
      "----------\n",
      "epoch 282/600\n",
      "1/5, train_loss: 0.5248\n",
      "2/5, train_loss: 0.5258\n",
      "3/5, train_loss: 0.4862\n",
      "4/5, train_loss: 0.5214\n",
      "5/5, train_loss: 0.5312\n",
      "6/5, train_loss: 0.4804\n",
      "epoch 282 average loss: 0.5116\n",
      "----------\n",
      "epoch 283/600\n",
      "1/5, train_loss: 0.4906\n",
      "2/5, train_loss: 0.5074\n",
      "3/5, train_loss: 0.5152\n",
      "4/5, train_loss: 0.5768\n",
      "5/5, train_loss: 0.4687\n",
      "6/5, train_loss: 0.5474\n",
      "epoch 283 average loss: 0.5177\n",
      "----------\n",
      "epoch 284/600\n",
      "1/5, train_loss: 0.5078\n",
      "2/5, train_loss: 0.5181\n",
      "3/5, train_loss: 0.5067\n",
      "4/5, train_loss: 0.5112\n",
      "5/5, train_loss: 0.5574\n",
      "6/5, train_loss: 0.5511\n",
      "epoch 284 average loss: 0.5254\n",
      "----------\n",
      "epoch 285/600\n",
      "1/5, train_loss: 0.5352\n",
      "2/5, train_loss: 0.5337\n",
      "3/5, train_loss: 0.5205\n",
      "4/5, train_loss: 0.5346\n",
      "5/5, train_loss: 0.4439\n",
      "6/5, train_loss: 0.5594\n",
      "epoch 285 average loss: 0.5212\n",
      "----------\n",
      "epoch 286/600\n",
      "1/5, train_loss: 0.5351\n",
      "2/5, train_loss: 0.5241\n",
      "3/5, train_loss: 0.5444\n",
      "4/5, train_loss: 0.5436\n",
      "5/5, train_loss: 0.5487\n",
      "6/5, train_loss: 0.4828\n",
      "epoch 286 average loss: 0.5298\n",
      "----------\n",
      "epoch 287/600\n",
      "1/5, train_loss: 0.5268\n",
      "2/5, train_loss: 0.5434\n",
      "3/5, train_loss: 0.5201\n",
      "4/5, train_loss: 0.5083\n",
      "5/5, train_loss: 0.5535\n",
      "6/5, train_loss: 0.5891\n",
      "epoch 287 average loss: 0.5402\n",
      "----------\n",
      "epoch 288/600\n",
      "1/5, train_loss: 0.5436\n",
      "2/5, train_loss: 0.5105\n",
      "3/5, train_loss: 0.5504\n",
      "4/5, train_loss: 0.5103\n",
      "5/5, train_loss: 0.5162\n",
      "6/5, train_loss: 0.5312\n",
      "epoch 288 average loss: 0.5270\n",
      "----------\n",
      "epoch 289/600\n",
      "1/5, train_loss: 0.5150\n",
      "2/5, train_loss: 0.5074\n",
      "3/5, train_loss: 0.5431\n",
      "4/5, train_loss: 0.5242\n",
      "5/5, train_loss: 0.5108\n",
      "6/5, train_loss: 0.5424\n",
      "epoch 289 average loss: 0.5238\n",
      "----------\n",
      "epoch 290/600\n",
      "1/5, train_loss: 0.5050\n",
      "2/5, train_loss: 0.5423\n",
      "3/5, train_loss: 0.5212\n",
      "4/5, train_loss: 0.4976\n",
      "5/5, train_loss: 0.5233\n",
      "6/5, train_loss: 0.5173\n",
      "epoch 290 average loss: 0.5178\n",
      "current epoch: 290 current mean dice: 0.0004 \n",
      "best mean dice: 0.0185  at epoch: 250\n",
      "----------\n",
      "epoch 291/600\n",
      "1/5, train_loss: 0.5011\n",
      "2/5, train_loss: 0.5531\n",
      "3/5, train_loss: 0.5261\n",
      "4/5, train_loss: 0.5174\n",
      "5/5, train_loss: 0.5234\n",
      "6/5, train_loss: 0.5041\n",
      "epoch 291 average loss: 0.5209\n",
      "----------\n",
      "epoch 292/600\n",
      "1/5, train_loss: 0.5329\n",
      "2/5, train_loss: 0.5546\n",
      "3/5, train_loss: 0.5600\n",
      "4/5, train_loss: 0.5645\n",
      "5/5, train_loss: 0.5202\n",
      "6/5, train_loss: 0.4588\n",
      "epoch 292 average loss: 0.5318\n",
      "----------\n",
      "epoch 293/600\n",
      "1/5, train_loss: 0.4794\n",
      "2/5, train_loss: 0.5403\n",
      "3/5, train_loss: 0.5402\n",
      "4/5, train_loss: 0.5210\n",
      "5/5, train_loss: 0.4850\n",
      "6/5, train_loss: 0.5714\n",
      "epoch 293 average loss: 0.5229\n",
      "----------\n",
      "epoch 294/600\n",
      "1/5, train_loss: 0.5568\n",
      "2/5, train_loss: 0.5025\n",
      "3/5, train_loss: 0.5204\n",
      "4/5, train_loss: 0.5501\n",
      "5/5, train_loss: 0.4950\n",
      "6/5, train_loss: 0.5540\n",
      "epoch 294 average loss: 0.5298\n",
      "----------\n",
      "epoch 295/600\n",
      "1/5, train_loss: 0.5139\n",
      "2/5, train_loss: 0.5413\n",
      "3/5, train_loss: 0.4837\n",
      "4/5, train_loss: 0.5452\n",
      "5/5, train_loss: 0.5283\n",
      "6/5, train_loss: 0.5011\n",
      "epoch 295 average loss: 0.5189\n",
      "----------\n",
      "epoch 296/600\n",
      "1/5, train_loss: 0.5327\n",
      "2/5, train_loss: 0.5282\n",
      "3/5, train_loss: 0.4998\n",
      "4/5, train_loss: 0.5241\n",
      "5/5, train_loss: 0.5319\n",
      "6/5, train_loss: 0.5517\n",
      "epoch 296 average loss: 0.5281\n",
      "----------\n",
      "epoch 297/600\n",
      "1/5, train_loss: 0.5260\n",
      "2/5, train_loss: 0.5031\n",
      "3/5, train_loss: 0.5170\n",
      "4/5, train_loss: 0.5456\n",
      "5/5, train_loss: 0.5223\n",
      "6/5, train_loss: 0.5082\n",
      "epoch 297 average loss: 0.5204\n",
      "----------\n",
      "epoch 298/600\n",
      "1/5, train_loss: 0.5040\n",
      "2/5, train_loss: 0.4973\n",
      "3/5, train_loss: 0.5306\n",
      "4/5, train_loss: 0.5576\n",
      "5/5, train_loss: 0.4802\n",
      "6/5, train_loss: 0.5527\n",
      "epoch 298 average loss: 0.5204\n",
      "----------\n",
      "epoch 299/600\n",
      "1/5, train_loss: 0.4904\n",
      "2/5, train_loss: 0.5317\n",
      "3/5, train_loss: 0.4956\n",
      "4/5, train_loss: 0.5097\n",
      "5/5, train_loss: 0.5523\n",
      "6/5, train_loss: 0.5494\n",
      "epoch 299 average loss: 0.5215\n",
      "----------\n",
      "epoch 300/600\n",
      "1/5, train_loss: 0.4816\n",
      "2/5, train_loss: 0.5314\n",
      "3/5, train_loss: 0.5469\n",
      "4/5, train_loss: 0.5117\n",
      "5/5, train_loss: 0.4787\n",
      "6/5, train_loss: 0.5643\n",
      "epoch 300 average loss: 0.5191\n",
      "current epoch: 300 current mean dice: 0.0120 \n",
      "best mean dice: 0.0185  at epoch: 250\n",
      "----------\n",
      "epoch 301/600\n",
      "1/5, train_loss: 0.5229\n",
      "2/5, train_loss: 0.5140\n",
      "3/5, train_loss: 0.5014\n",
      "4/5, train_loss: 0.5227\n",
      "5/5, train_loss: 0.5168\n",
      "6/5, train_loss: 0.4744\n",
      "epoch 301 average loss: 0.5087\n",
      "----------\n",
      "epoch 302/600\n",
      "1/5, train_loss: 0.5468\n",
      "2/5, train_loss: 0.5435\n",
      "3/5, train_loss: 0.5546\n",
      "4/5, train_loss: 0.5062\n",
      "5/5, train_loss: 0.5690\n",
      "6/5, train_loss: 0.4872\n",
      "epoch 302 average loss: 0.5346\n",
      "----------\n",
      "epoch 303/600\n",
      "1/5, train_loss: 0.5637\n",
      "2/5, train_loss: 0.5583\n",
      "3/5, train_loss: 0.5082\n",
      "4/5, train_loss: 0.5211\n",
      "5/5, train_loss: 0.5008\n",
      "6/5, train_loss: 0.5505\n",
      "epoch 303 average loss: 0.5338\n",
      "----------\n",
      "epoch 304/600\n",
      "1/5, train_loss: 0.5134\n",
      "2/5, train_loss: 0.4902\n",
      "3/5, train_loss: 0.4930\n",
      "4/5, train_loss: 0.4414\n",
      "5/5, train_loss: 0.4814\n",
      "6/5, train_loss: 0.5283\n",
      "epoch 304 average loss: 0.4913\n",
      "----------\n",
      "epoch 305/600\n",
      "1/5, train_loss: 0.5214\n",
      "2/5, train_loss: 0.5233\n",
      "3/5, train_loss: 0.5164\n",
      "4/5, train_loss: 0.4640\n",
      "5/5, train_loss: 0.5277\n",
      "6/5, train_loss: 0.4550\n",
      "epoch 305 average loss: 0.5013\n",
      "----------\n",
      "epoch 306/600\n",
      "1/5, train_loss: 0.5282\n",
      "2/5, train_loss: 0.4986\n",
      "3/5, train_loss: 0.5330\n",
      "4/5, train_loss: 0.5071\n",
      "5/5, train_loss: 0.5164\n",
      "6/5, train_loss: 0.4886\n",
      "epoch 306 average loss: 0.5120\n",
      "----------\n",
      "epoch 307/600\n",
      "1/5, train_loss: 0.5058\n",
      "2/5, train_loss: 0.4884\n",
      "3/5, train_loss: 0.5452\n",
      "4/5, train_loss: 0.5532\n",
      "5/5, train_loss: 0.5698\n",
      "6/5, train_loss: 0.5339\n",
      "epoch 307 average loss: 0.5327\n",
      "----------\n",
      "epoch 308/600\n",
      "1/5, train_loss: 0.4923\n",
      "2/5, train_loss: 0.5225\n",
      "3/5, train_loss: 0.4990\n",
      "4/5, train_loss: 0.5335\n",
      "5/5, train_loss: 0.5148\n",
      "6/5, train_loss: 0.5509\n",
      "epoch 308 average loss: 0.5188\n",
      "----------\n",
      "epoch 309/600\n",
      "1/5, train_loss: 0.5433\n",
      "2/5, train_loss: 0.5359\n",
      "3/5, train_loss: 0.5246\n",
      "4/5, train_loss: 0.5187\n",
      "5/5, train_loss: 0.5723\n",
      "6/5, train_loss: 0.4913\n",
      "epoch 309 average loss: 0.5310\n",
      "----------\n",
      "epoch 310/600\n",
      "1/5, train_loss: 0.5203\n",
      "2/5, train_loss: 0.5045\n",
      "3/5, train_loss: 0.5110\n",
      "4/5, train_loss: 0.5147\n",
      "5/5, train_loss: 0.4810\n",
      "6/5, train_loss: 0.5463\n",
      "epoch 310 average loss: 0.5129\n",
      "current epoch: 310 current mean dice: 0.0121 \n",
      "best mean dice: 0.0185  at epoch: 250\n",
      "----------\n",
      "epoch 311/600\n",
      "1/5, train_loss: 0.4948\n",
      "2/5, train_loss: 0.4673\n",
      "3/5, train_loss: 0.5110\n",
      "4/5, train_loss: 0.5647\n",
      "5/5, train_loss: 0.5154\n",
      "6/5, train_loss: 0.5311\n",
      "epoch 311 average loss: 0.5141\n",
      "----------\n",
      "epoch 312/600\n",
      "1/5, train_loss: 0.5140\n",
      "2/5, train_loss: 0.5242\n",
      "3/5, train_loss: 0.4477\n",
      "4/5, train_loss: 0.5004\n",
      "5/5, train_loss: 0.5122\n",
      "6/5, train_loss: 0.5575\n",
      "epoch 312 average loss: 0.5093\n",
      "----------\n",
      "epoch 313/600\n",
      "1/5, train_loss: 0.5491\n",
      "2/5, train_loss: 0.5182\n",
      "3/5, train_loss: 0.5105\n",
      "4/5, train_loss: 0.4960\n",
      "5/5, train_loss: 0.5147\n",
      "6/5, train_loss: 0.5522\n",
      "epoch 313 average loss: 0.5234\n",
      "----------\n",
      "epoch 314/600\n",
      "1/5, train_loss: 0.5229\n",
      "2/5, train_loss: 0.5031\n",
      "3/5, train_loss: 0.5065\n",
      "4/5, train_loss: 0.5410\n",
      "5/5, train_loss: 0.5025\n",
      "6/5, train_loss: 0.5019\n",
      "epoch 314 average loss: 0.5130\n",
      "----------\n",
      "epoch 315/600\n",
      "1/5, train_loss: 0.5309\n",
      "2/5, train_loss: 0.5265\n",
      "3/5, train_loss: 0.5137\n",
      "4/5, train_loss: 0.4811\n",
      "5/5, train_loss: 0.5025\n",
      "6/5, train_loss: 0.5603\n",
      "epoch 315 average loss: 0.5192\n",
      "----------\n",
      "epoch 316/600\n",
      "1/5, train_loss: 0.5248\n",
      "2/5, train_loss: 0.5115\n",
      "3/5, train_loss: 0.5078\n",
      "4/5, train_loss: 0.5200\n",
      "5/5, train_loss: 0.4896\n",
      "6/5, train_loss: 0.5455\n",
      "epoch 316 average loss: 0.5165\n",
      "----------\n",
      "epoch 317/600\n",
      "1/5, train_loss: 0.4904\n",
      "2/5, train_loss: 0.5055\n",
      "3/5, train_loss: 0.5184\n",
      "4/5, train_loss: 0.5439\n",
      "5/5, train_loss: 0.5183\n",
      "6/5, train_loss: 0.5057\n",
      "epoch 317 average loss: 0.5137\n",
      "----------\n",
      "epoch 318/600\n",
      "1/5, train_loss: 0.4799\n",
      "2/5, train_loss: 0.4869\n",
      "3/5, train_loss: 0.5105\n",
      "4/5, train_loss: 0.5797\n",
      "5/5, train_loss: 0.5351\n",
      "6/5, train_loss: 0.5214\n",
      "epoch 318 average loss: 0.5189\n",
      "----------\n",
      "epoch 319/600\n",
      "1/5, train_loss: 0.5027\n",
      "2/5, train_loss: 0.5024\n",
      "3/5, train_loss: 0.5113\n",
      "4/5, train_loss: 0.5437\n",
      "5/5, train_loss: 0.5254\n",
      "6/5, train_loss: 0.5538\n",
      "epoch 319 average loss: 0.5232\n",
      "----------\n",
      "epoch 320/600\n",
      "1/5, train_loss: 0.4904\n",
      "2/5, train_loss: 0.5508\n",
      "3/5, train_loss: 0.5297\n",
      "4/5, train_loss: 0.5101\n",
      "5/5, train_loss: 0.5181\n",
      "6/5, train_loss: 0.4910\n",
      "epoch 320 average loss: 0.5150\n",
      "current epoch: 320 current mean dice: 0.0004 \n",
      "best mean dice: 0.0185  at epoch: 250\n",
      "----------\n",
      "epoch 321/600\n",
      "1/5, train_loss: 0.5171\n",
      "2/5, train_loss: 0.5250\n",
      "3/5, train_loss: 0.5273\n",
      "4/5, train_loss: 0.5270\n",
      "5/5, train_loss: 0.5124\n",
      "6/5, train_loss: 0.4669\n",
      "epoch 321 average loss: 0.5126\n",
      "----------\n",
      "epoch 322/600\n",
      "1/5, train_loss: 0.5047\n",
      "2/5, train_loss: 0.5386\n",
      "3/5, train_loss: 0.5575\n",
      "4/5, train_loss: 0.5442\n",
      "5/5, train_loss: 0.5040\n",
      "6/5, train_loss: 0.5385\n",
      "epoch 322 average loss: 0.5313\n",
      "----------\n",
      "epoch 323/600\n",
      "1/5, train_loss: 0.5230\n",
      "2/5, train_loss: 0.4953\n",
      "3/5, train_loss: 0.5170\n",
      "4/5, train_loss: 0.4699\n",
      "5/5, train_loss: 0.5149\n",
      "6/5, train_loss: 0.4972\n",
      "epoch 323 average loss: 0.5029\n",
      "----------\n",
      "epoch 324/600\n",
      "1/5, train_loss: 0.5327\n",
      "2/5, train_loss: 0.5287\n",
      "3/5, train_loss: 0.4668\n",
      "4/5, train_loss: 0.5253\n",
      "5/5, train_loss: 0.5594\n",
      "6/5, train_loss: 0.4347\n",
      "epoch 324 average loss: 0.5079\n",
      "----------\n",
      "epoch 325/600\n",
      "1/5, train_loss: 0.5211\n",
      "2/5, train_loss: 0.4922\n",
      "3/5, train_loss: 0.4868\n",
      "4/5, train_loss: 0.5158\n",
      "5/5, train_loss: 0.5160\n",
      "6/5, train_loss: 0.5140\n",
      "epoch 325 average loss: 0.5076\n",
      "----------\n",
      "epoch 326/600\n",
      "1/5, train_loss: 0.4998\n",
      "2/5, train_loss: 0.5121\n",
      "3/5, train_loss: 0.4986\n",
      "4/5, train_loss: 0.5451\n",
      "5/5, train_loss: 0.5462\n",
      "6/5, train_loss: 0.5402\n",
      "epoch 326 average loss: 0.5236\n",
      "----------\n",
      "epoch 327/600\n",
      "1/5, train_loss: 0.5145\n",
      "2/5, train_loss: 0.5287\n",
      "3/5, train_loss: 0.4810\n",
      "4/5, train_loss: 0.5227\n",
      "5/5, train_loss: 0.5442\n",
      "6/5, train_loss: 0.4876\n",
      "epoch 327 average loss: 0.5131\n",
      "----------\n",
      "epoch 328/600\n",
      "1/5, train_loss: 0.5076\n",
      "2/5, train_loss: 0.5374\n",
      "3/5, train_loss: 0.5409\n",
      "4/5, train_loss: 0.4664\n",
      "5/5, train_loss: 0.5471\n",
      "6/5, train_loss: 0.4611\n",
      "epoch 328 average loss: 0.5101\n",
      "----------\n",
      "epoch 329/600\n",
      "1/5, train_loss: 0.5249\n",
      "2/5, train_loss: 0.5787\n",
      "3/5, train_loss: 0.4811\n",
      "4/5, train_loss: 0.5562\n",
      "5/5, train_loss: 0.4658\n",
      "6/5, train_loss: 0.4667\n",
      "epoch 329 average loss: 0.5122\n",
      "----------\n",
      "epoch 330/600\n",
      "1/5, train_loss: 0.5247\n",
      "2/5, train_loss: 0.5493\n",
      "3/5, train_loss: 0.5245\n",
      "4/5, train_loss: 0.5011\n",
      "5/5, train_loss: 0.5173\n",
      "6/5, train_loss: 0.5222\n",
      "epoch 330 average loss: 0.5232\n",
      "aim name Task002_Heart_AttentionUnet\n",
      "saved new best metric model at the 330th epoch\n",
      "current epoch: 330 current mean dice: 0.0187 \n",
      "best mean dice: 0.0187  at epoch: 330\n",
      "----------\n",
      "epoch 331/600\n",
      "1/5, train_loss: 0.5023\n",
      "2/5, train_loss: 0.4519\n",
      "3/5, train_loss: 0.5473\n",
      "4/5, train_loss: 0.4606\n",
      "5/5, train_loss: 0.4935\n",
      "6/5, train_loss: 0.5241\n",
      "epoch 331 average loss: 0.4966\n",
      "----------\n",
      "epoch 332/600\n",
      "1/5, train_loss: 0.5468\n",
      "2/5, train_loss: 0.5577\n",
      "3/5, train_loss: 0.4963\n",
      "4/5, train_loss: 0.4728\n",
      "5/5, train_loss: 0.5429\n",
      "6/5, train_loss: 0.4658\n",
      "epoch 332 average loss: 0.5137\n",
      "----------\n",
      "epoch 333/600\n",
      "1/5, train_loss: 0.5178\n",
      "2/5, train_loss: 0.5198\n",
      "3/5, train_loss: 0.5411\n",
      "4/5, train_loss: 0.4428\n",
      "5/5, train_loss: 0.4550\n",
      "6/5, train_loss: 0.4961\n",
      "epoch 333 average loss: 0.4954\n",
      "----------\n",
      "epoch 334/600\n",
      "1/5, train_loss: 0.5351\n",
      "2/5, train_loss: 0.5286\n",
      "3/5, train_loss: 0.5025\n",
      "4/5, train_loss: 0.5356\n",
      "5/5, train_loss: 0.5225\n",
      "6/5, train_loss: 0.5362\n",
      "epoch 334 average loss: 0.5267\n",
      "----------\n",
      "epoch 335/600\n",
      "1/5, train_loss: 0.5135\n",
      "2/5, train_loss: 0.5380\n",
      "3/5, train_loss: 0.5027\n",
      "4/5, train_loss: 0.5372\n",
      "5/5, train_loss: 0.5080\n",
      "6/5, train_loss: 0.4244\n",
      "epoch 335 average loss: 0.5039\n",
      "----------\n",
      "epoch 336/600\n",
      "1/5, train_loss: 0.5356\n",
      "2/5, train_loss: 0.5060\n",
      "3/5, train_loss: 0.5011\n",
      "4/5, train_loss: 0.5089\n",
      "5/5, train_loss: 0.4779\n",
      "6/5, train_loss: 0.5880\n",
      "epoch 336 average loss: 0.5196\n",
      "----------\n",
      "epoch 337/600\n",
      "1/5, train_loss: 0.5719\n",
      "2/5, train_loss: 0.4737\n",
      "3/5, train_loss: 0.4820\n",
      "4/5, train_loss: 0.4801\n",
      "5/5, train_loss: 0.5196\n",
      "6/5, train_loss: 0.4613\n",
      "epoch 337 average loss: 0.4981\n",
      "----------\n",
      "epoch 338/600\n",
      "1/5, train_loss: 0.5138\n",
      "2/5, train_loss: 0.4851\n",
      "3/5, train_loss: 0.5368\n",
      "4/5, train_loss: 0.5382\n",
      "5/5, train_loss: 0.5160\n",
      "6/5, train_loss: 0.5256\n",
      "epoch 338 average loss: 0.5193\n",
      "----------\n",
      "epoch 339/600\n",
      "1/5, train_loss: 0.5386\n",
      "2/5, train_loss: 0.5734\n",
      "3/5, train_loss: 0.4992\n",
      "4/5, train_loss: 0.4846\n",
      "5/5, train_loss: 0.4858\n",
      "6/5, train_loss: 0.5739\n",
      "epoch 339 average loss: 0.5259\n",
      "----------\n",
      "epoch 340/600\n",
      "1/5, train_loss: 0.5241\n",
      "2/5, train_loss: 0.4750\n",
      "3/5, train_loss: 0.5096\n",
      "4/5, train_loss: 0.4586\n",
      "5/5, train_loss: 0.5196\n",
      "6/5, train_loss: 0.5568\n",
      "epoch 340 average loss: 0.5073\n",
      "current epoch: 340 current mean dice: 0.0124 \n",
      "best mean dice: 0.0187  at epoch: 330\n",
      "----------\n",
      "epoch 341/600\n",
      "1/5, train_loss: 0.5524\n",
      "2/5, train_loss: 0.5043\n",
      "3/5, train_loss: 0.5038\n",
      "4/5, train_loss: 0.4979\n",
      "5/5, train_loss: 0.5704\n",
      "6/5, train_loss: 0.4496\n",
      "epoch 341 average loss: 0.5131\n",
      "----------\n",
      "epoch 342/600\n",
      "1/5, train_loss: 0.5017\n",
      "2/5, train_loss: 0.4933\n",
      "3/5, train_loss: 0.5640\n",
      "4/5, train_loss: 0.4824\n",
      "5/5, train_loss: 0.4663\n",
      "6/5, train_loss: 0.4893\n",
      "epoch 342 average loss: 0.4995\n",
      "----------\n",
      "epoch 343/600\n",
      "1/5, train_loss: 0.5019\n",
      "2/5, train_loss: 0.4953\n",
      "3/5, train_loss: 0.4955\n",
      "4/5, train_loss: 0.5196\n",
      "5/5, train_loss: 0.4683\n",
      "6/5, train_loss: 0.5507\n",
      "epoch 343 average loss: 0.5052\n",
      "----------\n",
      "epoch 344/600\n",
      "1/5, train_loss: 0.4974\n",
      "2/5, train_loss: 0.4999\n",
      "3/5, train_loss: 0.5220\n",
      "4/5, train_loss: 0.5251\n",
      "5/5, train_loss: 0.4940\n",
      "6/5, train_loss: 0.4557\n",
      "epoch 344 average loss: 0.4990\n",
      "----------\n",
      "epoch 345/600\n",
      "1/5, train_loss: 0.4683\n",
      "2/5, train_loss: 0.4844\n",
      "3/5, train_loss: 0.5430\n",
      "4/5, train_loss: 0.5699\n",
      "5/5, train_loss: 0.5522\n",
      "6/5, train_loss: 0.5500\n",
      "epoch 345 average loss: 0.5280\n",
      "----------\n",
      "epoch 346/600\n",
      "1/5, train_loss: 0.5330\n",
      "2/5, train_loss: 0.5452\n",
      "3/5, train_loss: 0.5255\n",
      "4/5, train_loss: 0.5241\n",
      "5/5, train_loss: 0.4725\n",
      "6/5, train_loss: 0.4906\n",
      "epoch 346 average loss: 0.5151\n",
      "----------\n",
      "epoch 347/600\n",
      "1/5, train_loss: 0.5398\n",
      "2/5, train_loss: 0.4846\n",
      "3/5, train_loss: 0.4787\n",
      "4/5, train_loss: 0.5091\n",
      "5/5, train_loss: 0.4907\n",
      "6/5, train_loss: 0.5038\n",
      "epoch 347 average loss: 0.5011\n",
      "----------\n",
      "epoch 348/600\n",
      "1/5, train_loss: 0.5467\n",
      "2/5, train_loss: 0.4963\n",
      "3/5, train_loss: 0.5089\n",
      "4/5, train_loss: 0.4894\n",
      "5/5, train_loss: 0.5227\n",
      "6/5, train_loss: 0.4542\n",
      "epoch 348 average loss: 0.5030\n",
      "----------\n",
      "epoch 349/600\n",
      "1/5, train_loss: 0.5046\n",
      "2/5, train_loss: 0.5536\n",
      "3/5, train_loss: 0.4798\n",
      "4/5, train_loss: 0.4967\n",
      "5/5, train_loss: 0.5201\n",
      "6/5, train_loss: 0.5572\n",
      "epoch 349 average loss: 0.5186\n",
      "----------\n",
      "epoch 350/600\n",
      "1/5, train_loss: 0.5046\n",
      "2/5, train_loss: 0.4657\n",
      "3/5, train_loss: 0.5755\n",
      "4/5, train_loss: 0.5020\n",
      "5/5, train_loss: 0.4870\n",
      "6/5, train_loss: 0.4793\n",
      "epoch 350 average loss: 0.5024\n",
      "current epoch: 350 current mean dice: 0.0087 \n",
      "best mean dice: 0.0187  at epoch: 330\n",
      "----------\n",
      "epoch 351/600\n",
      "1/5, train_loss: 0.5146\n",
      "2/5, train_loss: 0.4889\n",
      "3/5, train_loss: 0.5278\n",
      "4/5, train_loss: 0.4928\n",
      "5/5, train_loss: 0.5136\n",
      "6/5, train_loss: 0.5135\n",
      "epoch 351 average loss: 0.5085\n",
      "----------\n",
      "epoch 352/600\n",
      "1/5, train_loss: 0.4801\n",
      "2/5, train_loss: 0.4839\n",
      "3/5, train_loss: 0.5118\n",
      "4/5, train_loss: 0.5320\n",
      "5/5, train_loss: 0.5051\n",
      "6/5, train_loss: 0.5188\n",
      "epoch 352 average loss: 0.5053\n",
      "----------\n",
      "epoch 353/600\n",
      "1/5, train_loss: 0.4932\n",
      "2/5, train_loss: 0.5025\n",
      "3/5, train_loss: 0.5167\n",
      "4/5, train_loss: 0.5155\n",
      "5/5, train_loss: 0.5005\n",
      "6/5, train_loss: 0.5381\n",
      "epoch 353 average loss: 0.5111\n",
      "----------\n",
      "epoch 354/600\n",
      "1/5, train_loss: 0.5450\n",
      "2/5, train_loss: 0.5246\n",
      "3/5, train_loss: 0.4965\n",
      "4/5, train_loss: 0.5136\n",
      "5/5, train_loss: 0.4965\n",
      "6/5, train_loss: 0.4311\n",
      "epoch 354 average loss: 0.5012\n",
      "----------\n",
      "epoch 355/600\n",
      "1/5, train_loss: 0.5323\n",
      "2/5, train_loss: 0.5373\n",
      "3/5, train_loss: 0.4713\n",
      "4/5, train_loss: 0.5562\n",
      "5/5, train_loss: 0.5400\n",
      "6/5, train_loss: 0.5816\n",
      "epoch 355 average loss: 0.5365\n",
      "----------\n",
      "epoch 356/600\n",
      "1/5, train_loss: 0.4758\n",
      "2/5, train_loss: 0.5333\n",
      "3/5, train_loss: 0.5256\n",
      "4/5, train_loss: 0.5852\n",
      "5/5, train_loss: 0.4850\n",
      "6/5, train_loss: 0.5850\n",
      "epoch 356 average loss: 0.5317\n",
      "----------\n",
      "epoch 357/600\n",
      "1/5, train_loss: 0.4936\n",
      "2/5, train_loss: 0.4857\n",
      "3/5, train_loss: 0.5324\n",
      "4/5, train_loss: 0.4714\n",
      "5/5, train_loss: 0.5174\n",
      "6/5, train_loss: 0.5226\n",
      "epoch 357 average loss: 0.5038\n",
      "----------\n",
      "epoch 358/600\n",
      "1/5, train_loss: 0.5383\n",
      "2/5, train_loss: 0.5168\n",
      "3/5, train_loss: 0.5338\n",
      "4/5, train_loss: 0.5030\n",
      "5/5, train_loss: 0.5765\n",
      "6/5, train_loss: 0.5849\n",
      "epoch 358 average loss: 0.5422\n",
      "----------\n",
      "epoch 359/600\n",
      "1/5, train_loss: 0.5185\n",
      "2/5, train_loss: 0.5516\n",
      "3/5, train_loss: 0.5028\n",
      "4/5, train_loss: 0.4968\n",
      "5/5, train_loss: 0.5024\n",
      "6/5, train_loss: 0.4975\n",
      "epoch 359 average loss: 0.5116\n",
      "----------\n",
      "epoch 360/600\n",
      "1/5, train_loss: 0.5354\n",
      "2/5, train_loss: 0.5264\n",
      "3/5, train_loss: 0.5200\n",
      "4/5, train_loss: 0.5073\n",
      "5/5, train_loss: 0.4832\n",
      "6/5, train_loss: 0.4984\n",
      "epoch 360 average loss: 0.5118\n",
      "aim name Task002_Heart_AttentionUnet\n",
      "saved new best metric model at the 360th epoch\n",
      "current epoch: 360 current mean dice: 0.0670 \n",
      "best mean dice: 0.0670  at epoch: 360\n",
      "----------\n",
      "epoch 361/600\n",
      "1/5, train_loss: 0.5145\n",
      "2/5, train_loss: 0.5285\n",
      "3/5, train_loss: 0.5151\n",
      "4/5, train_loss: 0.5200\n",
      "5/5, train_loss: 0.5478\n",
      "6/5, train_loss: 0.4356\n",
      "epoch 361 average loss: 0.5102\n",
      "----------\n",
      "epoch 362/600\n",
      "1/5, train_loss: 0.5004\n",
      "2/5, train_loss: 0.4829\n",
      "3/5, train_loss: 0.5005\n",
      "4/5, train_loss: 0.5029\n",
      "5/5, train_loss: 0.4985\n",
      "6/5, train_loss: 0.5253\n",
      "epoch 362 average loss: 0.5018\n",
      "----------\n",
      "epoch 363/600\n",
      "1/5, train_loss: 0.5293\n",
      "2/5, train_loss: 0.5066\n",
      "3/5, train_loss: 0.4681\n",
      "4/5, train_loss: 0.4857\n",
      "5/5, train_loss: 0.5082\n",
      "6/5, train_loss: 0.4957\n",
      "epoch 363 average loss: 0.4989\n",
      "----------\n",
      "epoch 364/600\n",
      "1/5, train_loss: 0.4906\n",
      "2/5, train_loss: 0.5158\n",
      "3/5, train_loss: 0.5045\n",
      "4/5, train_loss: 0.5143\n",
      "5/5, train_loss: 0.4984\n",
      "6/5, train_loss: 0.4961\n",
      "epoch 364 average loss: 0.5033\n",
      "----------\n",
      "epoch 365/600\n",
      "1/5, train_loss: 0.5002\n",
      "2/5, train_loss: 0.4891\n",
      "3/5, train_loss: 0.5709\n",
      "4/5, train_loss: 0.5438\n",
      "5/5, train_loss: 0.5169\n",
      "6/5, train_loss: 0.5091\n",
      "epoch 365 average loss: 0.5217\n",
      "----------\n",
      "epoch 366/600\n",
      "1/5, train_loss: 0.4735\n",
      "2/5, train_loss: 0.4819\n",
      "3/5, train_loss: 0.5083\n",
      "4/5, train_loss: 0.4460\n",
      "5/5, train_loss: 0.5319\n",
      "6/5, train_loss: 0.5156\n",
      "epoch 366 average loss: 0.4929\n",
      "----------\n",
      "epoch 367/600\n",
      "1/5, train_loss: 0.5155\n",
      "2/5, train_loss: 0.4794\n",
      "3/5, train_loss: 0.5058\n",
      "4/5, train_loss: 0.4964\n",
      "5/5, train_loss: 0.4970\n",
      "6/5, train_loss: 0.4391\n",
      "epoch 367 average loss: 0.4889\n",
      "----------\n",
      "epoch 368/600\n",
      "1/5, train_loss: 0.4599\n",
      "2/5, train_loss: 0.4928\n",
      "3/5, train_loss: 0.4850\n",
      "4/5, train_loss: 0.4788\n",
      "5/5, train_loss: 0.4812\n",
      "6/5, train_loss: 0.5495\n",
      "epoch 368 average loss: 0.4912\n",
      "----------\n",
      "epoch 369/600\n",
      "1/5, train_loss: 0.4716\n",
      "2/5, train_loss: 0.5200\n",
      "3/5, train_loss: 0.5256\n",
      "4/5, train_loss: 0.5069\n",
      "5/5, train_loss: 0.4898\n",
      "6/5, train_loss: 0.4913\n",
      "epoch 369 average loss: 0.5009\n",
      "----------\n",
      "epoch 370/600\n",
      "1/5, train_loss: 0.5126\n",
      "2/5, train_loss: 0.4880\n",
      "3/5, train_loss: 0.4958\n",
      "4/5, train_loss: 0.4680\n",
      "5/5, train_loss: 0.4765\n",
      "6/5, train_loss: 0.5103\n",
      "epoch 370 average loss: 0.4919\n",
      "current epoch: 370 current mean dice: 0.0004 \n",
      "best mean dice: 0.0670  at epoch: 360\n",
      "----------\n",
      "epoch 371/600\n",
      "1/5, train_loss: 0.5135\n",
      "2/5, train_loss: 0.5129\n",
      "3/5, train_loss: 0.5238\n",
      "4/5, train_loss: 0.5023\n",
      "5/5, train_loss: 0.4474\n",
      "6/5, train_loss: 0.5140\n",
      "epoch 371 average loss: 0.5023\n",
      "----------\n",
      "epoch 372/600\n",
      "1/5, train_loss: 0.5101\n",
      "2/5, train_loss: 0.4813\n",
      "3/5, train_loss: 0.5188\n",
      "4/5, train_loss: 0.4419\n",
      "5/5, train_loss: 0.5433\n",
      "6/5, train_loss: 0.5199\n",
      "epoch 372 average loss: 0.5026\n",
      "----------\n",
      "epoch 373/600\n",
      "1/5, train_loss: 0.5055\n",
      "2/5, train_loss: 0.4534\n",
      "3/5, train_loss: 0.5028\n",
      "4/5, train_loss: 0.5267\n",
      "5/5, train_loss: 0.4860\n",
      "6/5, train_loss: 0.5383\n",
      "epoch 373 average loss: 0.5021\n",
      "----------\n",
      "epoch 374/600\n",
      "1/5, train_loss: 0.5077\n",
      "2/5, train_loss: 0.4978\n",
      "3/5, train_loss: 0.5127\n",
      "4/5, train_loss: 0.5238\n",
      "5/5, train_loss: 0.5091\n",
      "6/5, train_loss: 0.4928\n",
      "epoch 374 average loss: 0.5073\n",
      "----------\n",
      "epoch 375/600\n",
      "1/5, train_loss: 0.4760\n",
      "2/5, train_loss: 0.4747\n",
      "3/5, train_loss: 0.5188\n",
      "4/5, train_loss: 0.5289\n",
      "5/5, train_loss: 0.4414\n",
      "6/5, train_loss: 0.5319\n",
      "epoch 375 average loss: 0.4953\n",
      "----------\n",
      "epoch 376/600\n",
      "1/5, train_loss: 0.5012\n",
      "2/5, train_loss: 0.5005\n",
      "3/5, train_loss: 0.4927\n",
      "4/5, train_loss: 0.5315\n",
      "5/5, train_loss: 0.4880\n",
      "6/5, train_loss: 0.4898\n",
      "epoch 376 average loss: 0.5006\n",
      "----------\n",
      "epoch 377/600\n",
      "1/5, train_loss: 0.4387\n",
      "2/5, train_loss: 0.5391\n",
      "3/5, train_loss: 0.4941\n",
      "4/5, train_loss: 0.4131\n",
      "5/5, train_loss: 0.5044\n",
      "6/5, train_loss: 0.4783\n",
      "epoch 377 average loss: 0.4779\n",
      "----------\n",
      "epoch 378/600\n",
      "1/5, train_loss: 0.5101\n",
      "2/5, train_loss: 0.5175\n",
      "3/5, train_loss: 0.4835\n",
      "4/5, train_loss: 0.4999\n",
      "5/5, train_loss: 0.5587\n",
      "6/5, train_loss: 0.5361\n",
      "epoch 378 average loss: 0.5176\n",
      "----------\n",
      "epoch 379/600\n",
      "1/5, train_loss: 0.4350\n",
      "2/5, train_loss: 0.4838\n",
      "3/5, train_loss: 0.4920\n",
      "4/5, train_loss: 0.4974\n",
      "5/5, train_loss: 0.4812\n",
      "6/5, train_loss: 0.5526\n",
      "epoch 379 average loss: 0.4903\n",
      "----------\n",
      "epoch 380/600\n",
      "1/5, train_loss: 0.4799\n",
      "2/5, train_loss: 0.5188\n",
      "3/5, train_loss: 0.5064\n",
      "4/5, train_loss: 0.5832\n",
      "5/5, train_loss: 0.5003\n",
      "6/5, train_loss: 0.5065\n",
      "epoch 380 average loss: 0.5159\n",
      "current epoch: 380 current mean dice: 0.0004 \n",
      "best mean dice: 0.0670  at epoch: 360\n",
      "----------\n",
      "epoch 381/600\n",
      "1/5, train_loss: 0.4864\n",
      "2/5, train_loss: 0.4799\n",
      "3/5, train_loss: 0.4973\n",
      "4/5, train_loss: 0.5282\n",
      "5/5, train_loss: 0.5233\n",
      "6/5, train_loss: 0.5103\n",
      "epoch 381 average loss: 0.5042\n",
      "----------\n",
      "epoch 382/600\n",
      "1/5, train_loss: 0.5324\n",
      "2/5, train_loss: 0.4673\n",
      "3/5, train_loss: 0.4840\n",
      "4/5, train_loss: 0.4528\n",
      "5/5, train_loss: 0.4770\n",
      "6/5, train_loss: 0.5825\n",
      "epoch 382 average loss: 0.4993\n",
      "----------\n",
      "epoch 383/600\n",
      "1/5, train_loss: 0.4883\n",
      "2/5, train_loss: 0.4992\n",
      "3/5, train_loss: 0.5273\n",
      "4/5, train_loss: 0.5317\n",
      "5/5, train_loss: 0.5138\n",
      "6/5, train_loss: 0.4741\n",
      "epoch 383 average loss: 0.5057\n",
      "----------\n",
      "epoch 384/600\n",
      "1/5, train_loss: 0.5109\n",
      "2/5, train_loss: 0.5114\n",
      "3/5, train_loss: 0.4821\n",
      "4/5, train_loss: 0.4652\n",
      "5/5, train_loss: 0.4775\n",
      "6/5, train_loss: 0.4567\n",
      "epoch 384 average loss: 0.4840\n",
      "----------\n",
      "epoch 385/600\n",
      "1/5, train_loss: 0.5156\n",
      "2/5, train_loss: 0.5341\n",
      "3/5, train_loss: 0.4801\n",
      "4/5, train_loss: 0.5451\n",
      "5/5, train_loss: 0.5338\n",
      "6/5, train_loss: 0.5533\n",
      "epoch 385 average loss: 0.5270\n",
      "----------\n",
      "epoch 386/600\n",
      "1/5, train_loss: 0.4652\n",
      "2/5, train_loss: 0.4992\n",
      "3/5, train_loss: 0.4883\n",
      "4/5, train_loss: 0.5136\n",
      "5/5, train_loss: 0.5260\n",
      "6/5, train_loss: 0.5363\n",
      "epoch 386 average loss: 0.5048\n",
      "----------\n",
      "epoch 387/600\n",
      "1/5, train_loss: 0.4831\n",
      "2/5, train_loss: 0.5095\n",
      "3/5, train_loss: 0.4732\n",
      "4/5, train_loss: 0.4847\n",
      "5/5, train_loss: 0.5095\n",
      "6/5, train_loss: 0.5648\n",
      "epoch 387 average loss: 0.5041\n",
      "----------\n",
      "epoch 388/600\n",
      "1/5, train_loss: 0.4876\n",
      "2/5, train_loss: 0.4735\n",
      "3/5, train_loss: 0.4690\n",
      "4/5, train_loss: 0.5096\n",
      "5/5, train_loss: 0.5082\n",
      "6/5, train_loss: 0.4454\n",
      "epoch 388 average loss: 0.4822\n",
      "----------\n",
      "epoch 389/600\n",
      "1/5, train_loss: 0.4652\n",
      "2/5, train_loss: 0.5264\n",
      "3/5, train_loss: 0.5116\n",
      "4/5, train_loss: 0.4808\n",
      "5/5, train_loss: 0.5056\n",
      "6/5, train_loss: 0.4677\n",
      "epoch 389 average loss: 0.4929\n",
      "----------\n",
      "epoch 390/600\n",
      "1/5, train_loss: 0.5040\n",
      "2/5, train_loss: 0.5196\n",
      "3/5, train_loss: 0.5175\n",
      "4/5, train_loss: 0.4921\n",
      "5/5, train_loss: 0.5325\n",
      "6/5, train_loss: 0.5345\n",
      "epoch 390 average loss: 0.5167\n",
      "current epoch: 390 current mean dice: 0.0004 \n",
      "best mean dice: 0.0670  at epoch: 360\n",
      "----------\n",
      "epoch 391/600\n",
      "1/5, train_loss: 0.5164\n",
      "2/5, train_loss: 0.5265\n",
      "3/5, train_loss: 0.5094\n",
      "4/5, train_loss: 0.4972\n",
      "5/5, train_loss: 0.4665\n",
      "6/5, train_loss: 0.4574\n",
      "epoch 391 average loss: 0.4955\n",
      "----------\n",
      "epoch 392/600\n",
      "1/5, train_loss: 0.5211\n",
      "2/5, train_loss: 0.5226\n",
      "3/5, train_loss: 0.4891\n",
      "4/5, train_loss: 0.5504\n",
      "5/5, train_loss: 0.5017\n",
      "6/5, train_loss: 0.5370\n",
      "epoch 392 average loss: 0.5203\n",
      "----------\n",
      "epoch 393/600\n",
      "1/5, train_loss: 0.5087\n",
      "2/5, train_loss: 0.5140\n",
      "3/5, train_loss: 0.5138\n",
      "4/5, train_loss: 0.5052\n",
      "5/5, train_loss: 0.5099\n",
      "6/5, train_loss: 0.5124\n",
      "epoch 393 average loss: 0.5106\n",
      "----------\n",
      "epoch 394/600\n",
      "1/5, train_loss: 0.5478\n",
      "2/5, train_loss: 0.5292\n",
      "3/5, train_loss: 0.5018\n",
      "4/5, train_loss: 0.5308\n",
      "5/5, train_loss: 0.4962\n",
      "6/5, train_loss: 0.4518\n",
      "epoch 394 average loss: 0.5096\n",
      "----------\n",
      "epoch 395/600\n",
      "1/5, train_loss: 0.4939\n",
      "2/5, train_loss: 0.5372\n",
      "3/5, train_loss: 0.5216\n",
      "4/5, train_loss: 0.5420\n",
      "5/5, train_loss: 0.5229\n",
      "6/5, train_loss: 0.4456\n",
      "epoch 395 average loss: 0.5105\n",
      "----------\n",
      "epoch 396/600\n",
      "1/5, train_loss: 0.5070\n",
      "2/5, train_loss: 0.4773\n",
      "3/5, train_loss: 0.4709\n",
      "4/5, train_loss: 0.4962\n",
      "5/5, train_loss: 0.4960\n",
      "6/5, train_loss: 0.5432\n",
      "epoch 396 average loss: 0.4984\n",
      "----------\n",
      "epoch 397/600\n",
      "1/5, train_loss: 0.5159\n",
      "2/5, train_loss: 0.5173\n",
      "3/5, train_loss: 0.5229\n",
      "4/5, train_loss: 0.4729\n",
      "5/5, train_loss: 0.4620\n",
      "6/5, train_loss: 0.5337\n",
      "epoch 397 average loss: 0.5041\n",
      "----------\n",
      "epoch 398/600\n",
      "1/5, train_loss: 0.4872\n",
      "2/5, train_loss: 0.5134\n",
      "3/5, train_loss: 0.5220\n",
      "4/5, train_loss: 0.4608\n",
      "5/5, train_loss: 0.4830\n",
      "6/5, train_loss: 0.4944\n",
      "epoch 398 average loss: 0.4935\n",
      "----------\n",
      "epoch 399/600\n",
      "1/5, train_loss: 0.4922\n",
      "2/5, train_loss: 0.4903\n",
      "3/5, train_loss: 0.5251\n",
      "4/5, train_loss: 0.5316\n",
      "5/5, train_loss: 0.5205\n",
      "6/5, train_loss: 0.4808\n",
      "epoch 399 average loss: 0.5068\n",
      "----------\n",
      "epoch 400/600\n",
      "1/5, train_loss: 0.5139\n",
      "2/5, train_loss: 0.4870\n",
      "3/5, train_loss: 0.4840\n",
      "4/5, train_loss: 0.5597\n",
      "5/5, train_loss: 0.5485\n",
      "6/5, train_loss: 0.5135\n",
      "epoch 400 average loss: 0.5178\n",
      "current epoch: 400 current mean dice: 0.0004 \n",
      "best mean dice: 0.0670  at epoch: 360\n",
      "----------\n",
      "epoch 401/600\n",
      "1/5, train_loss: 0.4916\n",
      "2/5, train_loss: 0.4987\n",
      "3/5, train_loss: 0.5129\n",
      "4/5, train_loss: 0.4811\n",
      "5/5, train_loss: 0.4491\n",
      "6/5, train_loss: 0.4667\n",
      "epoch 401 average loss: 0.4833\n",
      "----------\n",
      "epoch 402/600\n",
      "1/5, train_loss: 0.5153\n",
      "2/5, train_loss: 0.5391\n",
      "3/5, train_loss: 0.4539\n",
      "4/5, train_loss: 0.4824\n",
      "5/5, train_loss: 0.4797\n",
      "6/5, train_loss: 0.4510\n",
      "epoch 402 average loss: 0.4869\n",
      "----------\n",
      "epoch 403/600\n",
      "1/5, train_loss: 0.5134\n",
      "2/5, train_loss: 0.5501\n",
      "3/5, train_loss: 0.4818\n",
      "4/5, train_loss: 0.4171\n",
      "5/5, train_loss: 0.5053\n",
      "6/5, train_loss: 0.5000\n",
      "epoch 403 average loss: 0.4946\n",
      "----------\n",
      "epoch 404/600\n",
      "1/5, train_loss: 0.5296\n",
      "2/5, train_loss: 0.4952\n",
      "3/5, train_loss: 0.4714\n",
      "4/5, train_loss: 0.5239\n",
      "5/5, train_loss: 0.5094\n",
      "6/5, train_loss: 0.4623\n",
      "epoch 404 average loss: 0.4986\n",
      "----------\n",
      "epoch 405/600\n",
      "1/5, train_loss: 0.4926\n",
      "2/5, train_loss: 0.5273\n",
      "3/5, train_loss: 0.4749\n",
      "4/5, train_loss: 0.4768\n",
      "5/5, train_loss: 0.5001\n",
      "6/5, train_loss: 0.4784\n",
      "epoch 405 average loss: 0.4917\n",
      "----------\n",
      "epoch 406/600\n",
      "1/5, train_loss: 0.5029\n",
      "2/5, train_loss: 0.4801\n",
      "3/5, train_loss: 0.5175\n",
      "4/5, train_loss: 0.5389\n",
      "5/5, train_loss: 0.5089\n",
      "6/5, train_loss: 0.4262\n",
      "epoch 406 average loss: 0.4958\n",
      "----------\n",
      "epoch 407/600\n",
      "1/5, train_loss: 0.5125\n",
      "2/5, train_loss: 0.5552\n",
      "3/5, train_loss: 0.5053\n",
      "4/5, train_loss: 0.4519\n",
      "5/5, train_loss: 0.5419\n",
      "6/5, train_loss: 0.4207\n",
      "epoch 407 average loss: 0.4979\n",
      "----------\n",
      "epoch 408/600\n",
      "1/5, train_loss: 0.4892\n",
      "2/5, train_loss: 0.5146\n",
      "3/5, train_loss: 0.5002\n",
      "4/5, train_loss: 0.4873\n",
      "5/5, train_loss: 0.5071\n",
      "6/5, train_loss: 0.4494\n",
      "epoch 408 average loss: 0.4913\n",
      "----------\n",
      "epoch 409/600\n",
      "1/5, train_loss: 0.4524\n",
      "2/5, train_loss: 0.5163\n",
      "3/5, train_loss: 0.5329\n",
      "4/5, train_loss: 0.5084\n",
      "5/5, train_loss: 0.5499\n",
      "6/5, train_loss: 0.5527\n",
      "epoch 409 average loss: 0.5188\n",
      "----------\n",
      "epoch 410/600\n",
      "1/5, train_loss: 0.5076\n",
      "2/5, train_loss: 0.4598\n",
      "3/5, train_loss: 0.4848\n",
      "4/5, train_loss: 0.4949\n",
      "5/5, train_loss: 0.5407\n",
      "6/5, train_loss: 0.5792\n",
      "epoch 410 average loss: 0.5112\n",
      "current epoch: 410 current mean dice: 0.0009 \n",
      "best mean dice: 0.0670  at epoch: 360\n",
      "----------\n",
      "epoch 411/600\n",
      "1/5, train_loss: 0.4797\n",
      "2/5, train_loss: 0.5214\n",
      "3/5, train_loss: 0.4877\n",
      "4/5, train_loss: 0.4699\n",
      "5/5, train_loss: 0.5236\n",
      "6/5, train_loss: 0.5188\n",
      "epoch 411 average loss: 0.5002\n",
      "----------\n",
      "epoch 412/600\n",
      "1/5, train_loss: 0.5197\n",
      "2/5, train_loss: 0.5042\n",
      "3/5, train_loss: 0.4887\n",
      "4/5, train_loss: 0.5270\n",
      "5/5, train_loss: 0.4770\n",
      "6/5, train_loss: 0.4905\n",
      "epoch 412 average loss: 0.5012\n",
      "----------\n",
      "epoch 413/600\n",
      "1/5, train_loss: 0.5140\n",
      "2/5, train_loss: 0.4980\n",
      "3/5, train_loss: 0.5526\n",
      "4/5, train_loss: 0.4841\n",
      "5/5, train_loss: 0.4975\n",
      "6/5, train_loss: 0.4750\n",
      "epoch 413 average loss: 0.5035\n",
      "----------\n",
      "epoch 414/600\n",
      "1/5, train_loss: 0.5110\n",
      "2/5, train_loss: 0.4520\n",
      "3/5, train_loss: 0.4628\n",
      "4/5, train_loss: 0.5141\n",
      "5/5, train_loss: 0.5011\n",
      "6/5, train_loss: 0.5358\n",
      "epoch 414 average loss: 0.4961\n",
      "----------\n",
      "epoch 415/600\n",
      "1/5, train_loss: 0.4556\n",
      "2/5, train_loss: 0.4996\n",
      "3/5, train_loss: 0.5069\n",
      "4/5, train_loss: 0.4524\n",
      "5/5, train_loss: 0.4674\n",
      "6/5, train_loss: 0.4570\n",
      "epoch 415 average loss: 0.4732\n",
      "----------\n",
      "epoch 416/600\n",
      "1/5, train_loss: 0.4870\n",
      "2/5, train_loss: 0.5137\n",
      "3/5, train_loss: 0.4765\n",
      "4/5, train_loss: 0.4961\n",
      "5/5, train_loss: 0.5195\n",
      "6/5, train_loss: 0.4683\n",
      "epoch 416 average loss: 0.4935\n",
      "----------\n",
      "epoch 417/600\n",
      "1/5, train_loss: 0.4913\n",
      "2/5, train_loss: 0.4858\n",
      "3/5, train_loss: 0.4804\n",
      "4/5, train_loss: 0.4964\n",
      "5/5, train_loss: 0.4902\n",
      "6/5, train_loss: 0.4897\n",
      "epoch 417 average loss: 0.4890\n",
      "----------\n",
      "epoch 418/600\n",
      "1/5, train_loss: 0.4814\n",
      "2/5, train_loss: 0.5448\n",
      "3/5, train_loss: 0.4598\n",
      "4/5, train_loss: 0.5580\n",
      "5/5, train_loss: 0.4783\n",
      "6/5, train_loss: 0.4486\n",
      "epoch 418 average loss: 0.4952\n",
      "----------\n",
      "epoch 419/600\n",
      "1/5, train_loss: 0.5055\n",
      "2/5, train_loss: 0.4143\n",
      "3/5, train_loss: 0.5171\n",
      "4/5, train_loss: 0.4503\n",
      "5/5, train_loss: 0.5131\n",
      "6/5, train_loss: 0.4753\n",
      "epoch 419 average loss: 0.4793\n",
      "----------\n",
      "epoch 420/600\n",
      "1/5, train_loss: 0.4875\n",
      "2/5, train_loss: 0.4879\n",
      "3/5, train_loss: 0.4791\n",
      "4/5, train_loss: 0.5419\n",
      "5/5, train_loss: 0.5044\n",
      "6/5, train_loss: 0.4610\n",
      "epoch 420 average loss: 0.4936\n",
      "current epoch: 420 current mean dice: 0.0322 \n",
      "best mean dice: 0.0670  at epoch: 360\n",
      "----------\n",
      "epoch 421/600\n",
      "1/5, train_loss: 0.4889\n",
      "2/5, train_loss: 0.4862\n",
      "3/5, train_loss: 0.5379\n",
      "4/5, train_loss: 0.5021\n",
      "5/5, train_loss: 0.4416\n",
      "6/5, train_loss: 0.4504\n",
      "epoch 421 average loss: 0.4845\n",
      "----------\n",
      "epoch 422/600\n",
      "1/5, train_loss: 0.5399\n",
      "2/5, train_loss: 0.5073\n",
      "3/5, train_loss: 0.4879\n",
      "4/5, train_loss: 0.4241\n",
      "5/5, train_loss: 0.5205\n",
      "6/5, train_loss: 0.5414\n",
      "epoch 422 average loss: 0.5035\n",
      "----------\n",
      "epoch 423/600\n",
      "1/5, train_loss: 0.5106\n",
      "2/5, train_loss: 0.5083\n",
      "3/5, train_loss: 0.5297\n",
      "4/5, train_loss: 0.4782\n",
      "5/5, train_loss: 0.4793\n",
      "6/5, train_loss: 0.5313\n",
      "epoch 423 average loss: 0.5063\n",
      "----------\n",
      "epoch 424/600\n",
      "1/5, train_loss: 0.4949\n",
      "2/5, train_loss: 0.4813\n",
      "3/5, train_loss: 0.5100\n",
      "4/5, train_loss: 0.4942\n",
      "5/5, train_loss: 0.4615\n",
      "6/5, train_loss: 0.4575\n",
      "epoch 424 average loss: 0.4832\n",
      "----------\n",
      "epoch 425/600\n",
      "1/5, train_loss: 0.4925\n",
      "2/5, train_loss: 0.5240\n",
      "3/5, train_loss: 0.4651\n",
      "4/5, train_loss: 0.5095\n",
      "5/5, train_loss: 0.5073\n",
      "6/5, train_loss: 0.4431\n",
      "epoch 425 average loss: 0.4903\n",
      "----------\n",
      "epoch 426/600\n",
      "1/5, train_loss: 0.5544\n",
      "2/5, train_loss: 0.4951\n",
      "3/5, train_loss: 0.5415\n",
      "4/5, train_loss: 0.4964\n",
      "5/5, train_loss: 0.4713\n",
      "6/5, train_loss: 0.4892\n",
      "epoch 426 average loss: 0.5080\n",
      "----------\n",
      "epoch 427/600\n",
      "1/5, train_loss: 0.5110\n",
      "2/5, train_loss: 0.4801\n",
      "3/5, train_loss: 0.5154\n",
      "4/5, train_loss: 0.5265\n",
      "5/5, train_loss: 0.5163\n",
      "6/5, train_loss: 0.4916\n",
      "epoch 427 average loss: 0.5068\n",
      "----------\n",
      "epoch 428/600\n",
      "1/5, train_loss: 0.4379\n",
      "2/5, train_loss: 0.4568\n",
      "3/5, train_loss: 0.5315\n",
      "4/5, train_loss: 0.4681\n",
      "5/5, train_loss: 0.5046\n",
      "6/5, train_loss: 0.5108\n",
      "epoch 428 average loss: 0.4849\n",
      "----------\n",
      "epoch 429/600\n",
      "1/5, train_loss: 0.5121\n",
      "2/5, train_loss: 0.4997\n",
      "3/5, train_loss: 0.4722\n",
      "4/5, train_loss: 0.4972\n",
      "5/5, train_loss: 0.4898\n",
      "6/5, train_loss: 0.5258\n",
      "epoch 429 average loss: 0.4995\n",
      "----------\n",
      "epoch 430/600\n",
      "1/5, train_loss: 0.5062\n",
      "2/5, train_loss: 0.4555\n",
      "3/5, train_loss: 0.5526\n",
      "4/5, train_loss: 0.4980\n",
      "5/5, train_loss: 0.5145\n",
      "6/5, train_loss: 0.4849\n",
      "epoch 430 average loss: 0.5020\n",
      "current epoch: 430 current mean dice: 0.0192 \n",
      "best mean dice: 0.0670  at epoch: 360\n",
      "----------\n",
      "epoch 431/600\n",
      "1/5, train_loss: 0.4540\n",
      "2/5, train_loss: 0.5475\n",
      "3/5, train_loss: 0.5129\n",
      "4/5, train_loss: 0.5296\n",
      "5/5, train_loss: 0.4720\n",
      "6/5, train_loss: 0.5777\n",
      "epoch 431 average loss: 0.5156\n",
      "----------\n",
      "epoch 432/600\n",
      "1/5, train_loss: 0.4440\n",
      "2/5, train_loss: 0.5221\n",
      "3/5, train_loss: 0.4922\n",
      "4/5, train_loss: 0.4984\n",
      "5/5, train_loss: 0.4796\n",
      "6/5, train_loss: 0.4494\n",
      "epoch 432 average loss: 0.4810\n",
      "----------\n",
      "epoch 433/600\n",
      "1/5, train_loss: 0.5225\n",
      "2/5, train_loss: 0.5414\n",
      "3/5, train_loss: 0.4636\n",
      "4/5, train_loss: 0.4852\n",
      "5/5, train_loss: 0.4967\n",
      "6/5, train_loss: 0.4715\n",
      "epoch 433 average loss: 0.4968\n",
      "----------\n",
      "epoch 434/600\n",
      "1/5, train_loss: 0.4681\n",
      "2/5, train_loss: 0.5069\n",
      "3/5, train_loss: 0.5091\n",
      "4/5, train_loss: 0.5164\n",
      "5/5, train_loss: 0.4138\n",
      "6/5, train_loss: 0.5196\n",
      "epoch 434 average loss: 0.4890\n",
      "----------\n",
      "epoch 435/600\n",
      "1/5, train_loss: 0.4987\n",
      "2/5, train_loss: 0.5570\n",
      "3/5, train_loss: 0.4499\n",
      "4/5, train_loss: 0.4649\n",
      "5/5, train_loss: 0.5131\n",
      "6/5, train_loss: 0.3808\n",
      "epoch 435 average loss: 0.4774\n",
      "----------\n",
      "epoch 436/600\n",
      "1/5, train_loss: 0.4264\n",
      "2/5, train_loss: 0.4725\n",
      "3/5, train_loss: 0.4713\n",
      "4/5, train_loss: 0.4640\n",
      "5/5, train_loss: 0.4722\n",
      "6/5, train_loss: 0.4807\n",
      "epoch 436 average loss: 0.4645\n",
      "----------\n",
      "epoch 437/600\n",
      "1/5, train_loss: 0.5092\n",
      "2/5, train_loss: 0.4715\n",
      "3/5, train_loss: 0.5013\n",
      "4/5, train_loss: 0.5019\n",
      "5/5, train_loss: 0.4212\n",
      "6/5, train_loss: 0.4422\n",
      "epoch 437 average loss: 0.4746\n",
      "----------\n",
      "epoch 438/600\n",
      "1/5, train_loss: 0.5038\n",
      "2/5, train_loss: 0.4257\n",
      "3/5, train_loss: 0.5214\n",
      "4/5, train_loss: 0.5110\n",
      "5/5, train_loss: 0.5157\n",
      "6/5, train_loss: 0.4524\n",
      "epoch 438 average loss: 0.4883\n",
      "----------\n",
      "epoch 439/600\n",
      "1/5, train_loss: 0.5469\n",
      "2/5, train_loss: 0.4523\n",
      "3/5, train_loss: 0.4505\n",
      "4/5, train_loss: 0.5065\n",
      "5/5, train_loss: 0.4853\n",
      "6/5, train_loss: 0.4481\n",
      "epoch 439 average loss: 0.4816\n",
      "----------\n",
      "epoch 440/600\n",
      "1/5, train_loss: 0.5198\n",
      "2/5, train_loss: 0.5053\n",
      "3/5, train_loss: 0.4960\n",
      "4/5, train_loss: 0.5104\n",
      "5/5, train_loss: 0.4818\n",
      "6/5, train_loss: 0.5122\n",
      "epoch 440 average loss: 0.5042\n",
      "current epoch: 440 current mean dice: 0.0071 \n",
      "best mean dice: 0.0670  at epoch: 360\n",
      "----------\n",
      "epoch 441/600\n",
      "1/5, train_loss: 0.5134\n",
      "2/5, train_loss: 0.4692\n",
      "3/5, train_loss: 0.4860\n",
      "4/5, train_loss: 0.4887\n",
      "5/5, train_loss: 0.5116\n",
      "6/5, train_loss: 0.4644\n",
      "epoch 441 average loss: 0.4889\n",
      "----------\n",
      "epoch 442/600\n",
      "1/5, train_loss: 0.5358\n",
      "2/5, train_loss: 0.4993\n",
      "3/5, train_loss: 0.5155\n",
      "4/5, train_loss: 0.4253\n",
      "5/5, train_loss: 0.4931\n",
      "6/5, train_loss: 0.5466\n",
      "epoch 442 average loss: 0.5026\n",
      "----------\n",
      "epoch 443/600\n",
      "1/5, train_loss: 0.5049\n",
      "2/5, train_loss: 0.5173\n",
      "3/5, train_loss: 0.4900\n",
      "4/5, train_loss: 0.5267\n",
      "5/5, train_loss: 0.4976\n",
      "6/5, train_loss: 0.5271\n",
      "epoch 443 average loss: 0.5106\n",
      "----------\n",
      "epoch 444/600\n",
      "1/5, train_loss: 0.5125\n",
      "2/5, train_loss: 0.4559\n",
      "3/5, train_loss: 0.5638\n",
      "4/5, train_loss: 0.4556\n",
      "5/5, train_loss: 0.4715\n",
      "6/5, train_loss: 0.4503\n",
      "epoch 444 average loss: 0.4849\n",
      "----------\n",
      "epoch 445/600\n",
      "1/5, train_loss: 0.5176\n",
      "2/5, train_loss: 0.4847\n",
      "3/5, train_loss: 0.5289\n",
      "4/5, train_loss: 0.4608\n",
      "5/5, train_loss: 0.4413\n",
      "6/5, train_loss: 0.4575\n",
      "epoch 445 average loss: 0.4818\n",
      "----------\n",
      "epoch 446/600\n",
      "1/5, train_loss: 0.4350\n",
      "2/5, train_loss: 0.5063\n",
      "3/5, train_loss: 0.5027\n",
      "4/5, train_loss: 0.4436\n",
      "5/5, train_loss: 0.5137\n",
      "6/5, train_loss: 0.4758\n",
      "epoch 446 average loss: 0.4795\n",
      "----------\n",
      "epoch 447/600\n",
      "1/5, train_loss: 0.4867\n",
      "2/5, train_loss: 0.5166\n",
      "3/5, train_loss: 0.4842\n",
      "4/5, train_loss: 0.5143\n",
      "5/5, train_loss: 0.4937\n",
      "6/5, train_loss: 0.5480\n",
      "epoch 447 average loss: 0.5072\n",
      "----------\n",
      "epoch 448/600\n",
      "1/5, train_loss: 0.4831\n",
      "2/5, train_loss: 0.4551\n",
      "3/5, train_loss: 0.4696\n",
      "4/5, train_loss: 0.4704\n",
      "5/5, train_loss: 0.5305\n",
      "6/5, train_loss: 0.4864\n",
      "epoch 448 average loss: 0.4825\n",
      "----------\n",
      "epoch 449/600\n",
      "1/5, train_loss: 0.4870\n",
      "2/5, train_loss: 0.4376\n",
      "3/5, train_loss: 0.5206\n",
      "4/5, train_loss: 0.5548\n",
      "5/5, train_loss: 0.4627\n",
      "6/5, train_loss: 0.4655\n",
      "epoch 449 average loss: 0.4880\n",
      "----------\n",
      "epoch 450/600\n",
      "1/5, train_loss: 0.4883\n",
      "2/5, train_loss: 0.5486\n",
      "3/5, train_loss: 0.4584\n",
      "4/5, train_loss: 0.4949\n",
      "5/5, train_loss: 0.5238\n",
      "6/5, train_loss: 0.4968\n",
      "epoch 450 average loss: 0.5018\n",
      "current epoch: 450 current mean dice: 0.0004 \n",
      "best mean dice: 0.0670  at epoch: 360\n",
      "----------\n",
      "epoch 451/600\n",
      "1/5, train_loss: 0.5360\n",
      "2/5, train_loss: 0.5143\n",
      "3/5, train_loss: 0.4375\n",
      "4/5, train_loss: 0.5175\n",
      "5/5, train_loss: 0.4893\n",
      "6/5, train_loss: 0.5754\n",
      "epoch 451 average loss: 0.5117\n",
      "----------\n",
      "epoch 452/600\n",
      "1/5, train_loss: 0.4765\n",
      "2/5, train_loss: 0.4322\n",
      "3/5, train_loss: 0.5355\n",
      "4/5, train_loss: 0.4742\n",
      "5/5, train_loss: 0.4922\n",
      "6/5, train_loss: 0.5451\n",
      "epoch 452 average loss: 0.4926\n",
      "----------\n",
      "epoch 453/600\n",
      "1/5, train_loss: 0.5290\n",
      "2/5, train_loss: 0.4478\n",
      "3/5, train_loss: 0.5333\n",
      "4/5, train_loss: 0.5048\n",
      "5/5, train_loss: 0.4432\n",
      "6/5, train_loss: 0.4751\n",
      "epoch 453 average loss: 0.4889\n",
      "----------\n",
      "epoch 454/600\n",
      "1/5, train_loss: 0.4780\n",
      "2/5, train_loss: 0.4643\n",
      "3/5, train_loss: 0.5399\n",
      "4/5, train_loss: 0.4426\n",
      "5/5, train_loss: 0.5185\n",
      "6/5, train_loss: 0.4347\n",
      "epoch 454 average loss: 0.4797\n",
      "----------\n",
      "epoch 455/600\n",
      "1/5, train_loss: 0.4968\n",
      "2/5, train_loss: 0.4806\n",
      "3/5, train_loss: 0.4645\n",
      "4/5, train_loss: 0.5039\n",
      "5/5, train_loss: 0.5137\n",
      "6/5, train_loss: 0.4900\n",
      "epoch 455 average loss: 0.4916\n",
      "----------\n",
      "epoch 456/600\n",
      "1/5, train_loss: 0.4808\n",
      "2/5, train_loss: 0.4912\n",
      "3/5, train_loss: 0.4916\n",
      "4/5, train_loss: 0.5079\n",
      "5/5, train_loss: 0.4716\n",
      "6/5, train_loss: 0.4977\n",
      "epoch 456 average loss: 0.4902\n",
      "----------\n",
      "epoch 457/600\n",
      "1/5, train_loss: 0.5092\n",
      "2/5, train_loss: 0.4797\n",
      "3/5, train_loss: 0.4516\n",
      "4/5, train_loss: 0.5078\n",
      "5/5, train_loss: 0.4446\n",
      "6/5, train_loss: 0.4829\n",
      "epoch 457 average loss: 0.4793\n",
      "----------\n",
      "epoch 458/600\n",
      "1/5, train_loss: 0.5207\n",
      "2/5, train_loss: 0.4780\n",
      "3/5, train_loss: 0.5327\n",
      "4/5, train_loss: 0.5245\n",
      "5/5, train_loss: 0.4537\n",
      "6/5, train_loss: 0.4670\n",
      "epoch 458 average loss: 0.4961\n",
      "----------\n",
      "epoch 459/600\n",
      "1/5, train_loss: 0.4840\n",
      "2/5, train_loss: 0.5313\n",
      "3/5, train_loss: 0.4899\n",
      "4/5, train_loss: 0.4308\n",
      "5/5, train_loss: 0.4812\n",
      "6/5, train_loss: 0.4847\n",
      "epoch 459 average loss: 0.4837\n",
      "----------\n",
      "epoch 460/600\n",
      "1/5, train_loss: 0.5355\n",
      "2/5, train_loss: 0.5278\n",
      "3/5, train_loss: 0.4976\n",
      "4/5, train_loss: 0.4833\n",
      "5/5, train_loss: 0.4452\n",
      "6/5, train_loss: 0.4670\n",
      "epoch 460 average loss: 0.4927\n",
      "aim name Task002_Heart_AttentionUnet\n",
      "saved new best metric model at the 460th epoch\n",
      "current epoch: 460 current mean dice: 0.0680 \n",
      "best mean dice: 0.0680  at epoch: 460\n",
      "----------\n",
      "epoch 461/600\n",
      "1/5, train_loss: 0.5142\n",
      "2/5, train_loss: 0.4967\n",
      "3/5, train_loss: 0.4964\n",
      "4/5, train_loss: 0.5053\n",
      "5/5, train_loss: 0.4715\n",
      "6/5, train_loss: 0.4947\n",
      "epoch 461 average loss: 0.4965\n",
      "----------\n",
      "epoch 462/600\n",
      "1/5, train_loss: 0.4898\n",
      "2/5, train_loss: 0.4824\n",
      "3/5, train_loss: 0.4897\n",
      "4/5, train_loss: 0.5282\n",
      "5/5, train_loss: 0.4970\n",
      "6/5, train_loss: 0.4563\n",
      "epoch 462 average loss: 0.4906\n",
      "----------\n",
      "epoch 463/600\n",
      "1/5, train_loss: 0.5109\n",
      "2/5, train_loss: 0.5125\n",
      "3/5, train_loss: 0.4557\n",
      "4/5, train_loss: 0.5087\n",
      "5/5, train_loss: 0.4603\n",
      "6/5, train_loss: 0.5369\n",
      "epoch 463 average loss: 0.4975\n",
      "----------\n",
      "epoch 464/600\n",
      "1/5, train_loss: 0.4811\n",
      "2/5, train_loss: 0.4840\n",
      "3/5, train_loss: 0.4714\n",
      "4/5, train_loss: 0.5090\n",
      "5/5, train_loss: 0.4926\n",
      "6/5, train_loss: 0.5361\n",
      "epoch 464 average loss: 0.4957\n",
      "----------\n",
      "epoch 465/600\n",
      "1/5, train_loss: 0.4349\n",
      "2/5, train_loss: 0.5483\n",
      "3/5, train_loss: 0.4990\n",
      "4/5, train_loss: 0.5345\n",
      "5/5, train_loss: 0.5276\n",
      "6/5, train_loss: 0.5698\n",
      "epoch 465 average loss: 0.5190\n",
      "----------\n",
      "epoch 466/600\n",
      "1/5, train_loss: 0.4999\n",
      "2/5, train_loss: 0.4617\n",
      "3/5, train_loss: 0.5107\n",
      "4/5, train_loss: 0.5046\n",
      "5/5, train_loss: 0.5507\n",
      "6/5, train_loss: 0.5346\n",
      "epoch 466 average loss: 0.5104\n",
      "----------\n",
      "epoch 467/600\n",
      "1/5, train_loss: 0.5158\n",
      "2/5, train_loss: 0.4732\n",
      "3/5, train_loss: 0.4969\n",
      "4/5, train_loss: 0.5060\n",
      "5/5, train_loss: 0.5211\n",
      "6/5, train_loss: 0.5357\n",
      "epoch 467 average loss: 0.5081\n",
      "----------\n",
      "epoch 468/600\n",
      "1/5, train_loss: 0.5534\n",
      "2/5, train_loss: 0.5240\n",
      "3/5, train_loss: 0.4780\n",
      "4/5, train_loss: 0.5394\n",
      "5/5, train_loss: 0.5429\n",
      "6/5, train_loss: 0.4929\n",
      "epoch 468 average loss: 0.5218\n",
      "----------\n",
      "epoch 469/600\n",
      "1/5, train_loss: 0.4701\n",
      "2/5, train_loss: 0.4451\n",
      "3/5, train_loss: 0.4949\n",
      "4/5, train_loss: 0.4581\n",
      "5/5, train_loss: 0.4158\n",
      "6/5, train_loss: 0.4805\n",
      "epoch 469 average loss: 0.4608\n",
      "----------\n",
      "epoch 470/600\n",
      "1/5, train_loss: 0.4695\n",
      "2/5, train_loss: 0.5225\n",
      "3/5, train_loss: 0.4600\n",
      "4/5, train_loss: 0.4845\n",
      "5/5, train_loss: 0.4384\n",
      "6/5, train_loss: 0.4643\n",
      "epoch 470 average loss: 0.4732\n",
      "current epoch: 470 current mean dice: 0.0004 \n",
      "best mean dice: 0.0680  at epoch: 460\n",
      "----------\n",
      "epoch 471/600\n",
      "1/5, train_loss: 0.4705\n",
      "2/5, train_loss: 0.5477\n",
      "3/5, train_loss: 0.4367\n",
      "4/5, train_loss: 0.5086\n",
      "5/5, train_loss: 0.4736\n",
      "6/5, train_loss: 0.4927\n",
      "epoch 471 average loss: 0.4883\n",
      "----------\n",
      "epoch 472/600\n",
      "1/5, train_loss: 0.5082\n",
      "2/5, train_loss: 0.5059\n",
      "3/5, train_loss: 0.5103\n",
      "4/5, train_loss: 0.5041\n",
      "5/5, train_loss: 0.5269\n",
      "6/5, train_loss: 0.5153\n",
      "epoch 472 average loss: 0.5118\n",
      "----------\n",
      "epoch 473/600\n",
      "1/5, train_loss: 0.4542\n",
      "2/5, train_loss: 0.5522\n",
      "3/5, train_loss: 0.3890\n",
      "4/5, train_loss: 0.4679\n",
      "5/5, train_loss: 0.4765\n",
      "6/5, train_loss: 0.5390\n",
      "epoch 473 average loss: 0.4798\n",
      "----------\n",
      "epoch 474/600\n",
      "1/5, train_loss: 0.4527\n",
      "2/5, train_loss: 0.4636\n",
      "3/5, train_loss: 0.4615\n",
      "4/5, train_loss: 0.5316\n",
      "5/5, train_loss: 0.4645\n",
      "6/5, train_loss: 0.4791\n",
      "epoch 474 average loss: 0.4755\n",
      "----------\n",
      "epoch 475/600\n",
      "1/5, train_loss: 0.4990\n",
      "2/5, train_loss: 0.4524\n",
      "3/5, train_loss: 0.4549\n",
      "4/5, train_loss: 0.4673\n",
      "5/5, train_loss: 0.5345\n",
      "6/5, train_loss: 0.5371\n",
      "epoch 475 average loss: 0.4909\n",
      "----------\n",
      "epoch 476/600\n",
      "1/5, train_loss: 0.4384\n",
      "2/5, train_loss: 0.5060\n",
      "3/5, train_loss: 0.4677\n",
      "4/5, train_loss: 0.4472\n",
      "5/5, train_loss: 0.4603\n",
      "6/5, train_loss: 0.4886\n",
      "epoch 476 average loss: 0.4680\n",
      "----------\n",
      "epoch 477/600\n",
      "1/5, train_loss: 0.4865\n",
      "2/5, train_loss: 0.4657\n",
      "3/5, train_loss: 0.4509\n",
      "4/5, train_loss: 0.4601\n",
      "5/5, train_loss: 0.5257\n",
      "6/5, train_loss: 0.4706\n",
      "epoch 477 average loss: 0.4766\n",
      "----------\n",
      "epoch 478/600\n",
      "1/5, train_loss: 0.5125\n",
      "2/5, train_loss: 0.4734\n",
      "3/5, train_loss: 0.5049\n",
      "4/5, train_loss: 0.5257\n",
      "5/5, train_loss: 0.5015\n",
      "6/5, train_loss: 0.4237\n",
      "epoch 478 average loss: 0.4903\n",
      "----------\n",
      "epoch 479/600\n",
      "1/5, train_loss: 0.4696\n",
      "2/5, train_loss: 0.5178\n",
      "3/5, train_loss: 0.5113\n",
      "4/5, train_loss: 0.4895\n",
      "5/5, train_loss: 0.4444\n",
      "6/5, train_loss: 0.4892\n",
      "epoch 479 average loss: 0.4869\n",
      "----------\n",
      "epoch 480/600\n",
      "1/5, train_loss: 0.4627\n",
      "2/5, train_loss: 0.5047\n",
      "3/5, train_loss: 0.5097\n",
      "4/5, train_loss: 0.5027\n",
      "5/5, train_loss: 0.4618\n",
      "6/5, train_loss: 0.4411\n",
      "epoch 480 average loss: 0.4804\n",
      "current epoch: 480 current mean dice: 0.0450 \n",
      "best mean dice: 0.0680  at epoch: 460\n",
      "----------\n",
      "epoch 481/600\n",
      "1/5, train_loss: 0.4787\n",
      "2/5, train_loss: 0.4493\n",
      "3/5, train_loss: 0.5477\n",
      "4/5, train_loss: 0.5079\n",
      "5/5, train_loss: 0.4387\n",
      "6/5, train_loss: 0.4115\n",
      "epoch 481 average loss: 0.4723\n",
      "----------\n",
      "epoch 482/600\n",
      "1/5, train_loss: 0.5010\n",
      "2/5, train_loss: 0.4863\n",
      "3/5, train_loss: 0.4338\n",
      "4/5, train_loss: 0.4356\n",
      "5/5, train_loss: 0.4429\n",
      "6/5, train_loss: 0.5035\n",
      "epoch 482 average loss: 0.4672\n",
      "----------\n",
      "epoch 483/600\n",
      "1/5, train_loss: 0.4766\n",
      "2/5, train_loss: 0.5372\n",
      "3/5, train_loss: 0.4788\n",
      "4/5, train_loss: 0.4174\n",
      "5/5, train_loss: 0.4860\n",
      "6/5, train_loss: 0.4386\n",
      "epoch 483 average loss: 0.4725\n",
      "----------\n",
      "epoch 484/600\n",
      "1/5, train_loss: 0.5381\n",
      "2/5, train_loss: 0.5068\n",
      "3/5, train_loss: 0.4261\n",
      "4/5, train_loss: 0.4739\n",
      "5/5, train_loss: 0.5080\n",
      "6/5, train_loss: 0.4222\n",
      "epoch 484 average loss: 0.4792\n",
      "----------\n",
      "epoch 485/600\n",
      "1/5, train_loss: 0.5155\n",
      "2/5, train_loss: 0.5017\n",
      "3/5, train_loss: 0.5398\n",
      "4/5, train_loss: 0.5026\n",
      "5/5, train_loss: 0.4645\n",
      "6/5, train_loss: 0.4795\n",
      "epoch 485 average loss: 0.5006\n",
      "----------\n",
      "epoch 486/600\n",
      "1/5, train_loss: 0.4550\n",
      "2/5, train_loss: 0.4996\n",
      "3/5, train_loss: 0.4655\n",
      "4/5, train_loss: 0.4884\n",
      "5/5, train_loss: 0.5001\n",
      "6/5, train_loss: 0.4849\n",
      "epoch 486 average loss: 0.4822\n",
      "----------\n",
      "epoch 487/600\n",
      "1/5, train_loss: 0.4767\n",
      "2/5, train_loss: 0.4828\n",
      "3/5, train_loss: 0.4511\n",
      "4/5, train_loss: 0.4456\n",
      "5/5, train_loss: 0.4392\n",
      "6/5, train_loss: 0.4575\n",
      "epoch 487 average loss: 0.4588\n",
      "----------\n",
      "epoch 488/600\n",
      "1/5, train_loss: 0.4860\n",
      "2/5, train_loss: 0.5373\n",
      "3/5, train_loss: 0.4641\n",
      "4/5, train_loss: 0.4787\n",
      "5/5, train_loss: 0.4943\n",
      "6/5, train_loss: 0.4724\n",
      "epoch 488 average loss: 0.4888\n",
      "----------\n",
      "epoch 489/600\n",
      "1/5, train_loss: 0.4551\n",
      "2/5, train_loss: 0.4931\n",
      "3/5, train_loss: 0.4737\n",
      "4/5, train_loss: 0.5134\n",
      "5/5, train_loss: 0.4861\n",
      "6/5, train_loss: 0.4865\n",
      "epoch 489 average loss: 0.4847\n",
      "----------\n",
      "epoch 490/600\n",
      "1/5, train_loss: 0.4423\n",
      "2/5, train_loss: 0.4827\n",
      "3/5, train_loss: 0.4887\n",
      "4/5, train_loss: 0.4481\n",
      "5/5, train_loss: 0.4976\n",
      "6/5, train_loss: 0.4008\n",
      "epoch 490 average loss: 0.4600\n",
      "current epoch: 490 current mean dice: 0.0003 \n",
      "best mean dice: 0.0680  at epoch: 460\n",
      "----------\n",
      "epoch 491/600\n",
      "1/5, train_loss: 0.4734\n",
      "2/5, train_loss: 0.4996\n",
      "3/5, train_loss: 0.5139\n",
      "4/5, train_loss: 0.4407\n",
      "5/5, train_loss: 0.4714\n",
      "6/5, train_loss: 0.3601\n",
      "epoch 491 average loss: 0.4598\n",
      "----------\n",
      "epoch 492/600\n",
      "1/5, train_loss: 0.4246\n",
      "2/5, train_loss: 0.5226\n",
      "3/5, train_loss: 0.5157\n",
      "4/5, train_loss: 0.5040\n",
      "5/5, train_loss: 0.4833\n",
      "6/5, train_loss: 0.4547\n",
      "epoch 492 average loss: 0.4841\n",
      "----------\n",
      "epoch 493/600\n",
      "1/5, train_loss: 0.4787\n",
      "2/5, train_loss: 0.4250\n",
      "3/5, train_loss: 0.4314\n",
      "4/5, train_loss: 0.4481\n",
      "5/5, train_loss: 0.5316\n",
      "6/5, train_loss: 0.4808\n",
      "epoch 493 average loss: 0.4659\n",
      "----------\n",
      "epoch 494/600\n",
      "1/5, train_loss: 0.4964\n",
      "2/5, train_loss: 0.4501\n",
      "3/5, train_loss: 0.5118\n",
      "4/5, train_loss: 0.4894\n",
      "5/5, train_loss: 0.4549\n",
      "6/5, train_loss: 0.4240\n",
      "epoch 494 average loss: 0.4711\n",
      "----------\n",
      "epoch 495/600\n",
      "1/5, train_loss: 0.4806\n",
      "2/5, train_loss: 0.4188\n",
      "3/5, train_loss: 0.5286\n",
      "4/5, train_loss: 0.4202\n",
      "5/5, train_loss: 0.4843\n",
      "6/5, train_loss: 0.4354\n",
      "epoch 495 average loss: 0.4613\n",
      "----------\n",
      "epoch 496/600\n",
      "1/5, train_loss: 0.5319\n",
      "2/5, train_loss: 0.5223\n",
      "3/5, train_loss: 0.5031\n",
      "4/5, train_loss: 0.4011\n",
      "5/5, train_loss: 0.4777\n",
      "6/5, train_loss: 0.5028\n",
      "epoch 496 average loss: 0.4898\n",
      "----------\n",
      "epoch 497/600\n",
      "1/5, train_loss: 0.4879\n",
      "2/5, train_loss: 0.4809\n",
      "3/5, train_loss: 0.4636\n",
      "4/5, train_loss: 0.4479\n",
      "5/5, train_loss: 0.4963\n",
      "6/5, train_loss: 0.4211\n",
      "epoch 497 average loss: 0.4663\n",
      "----------\n",
      "epoch 498/600\n",
      "1/5, train_loss: 0.4987\n",
      "2/5, train_loss: 0.4725\n",
      "3/5, train_loss: 0.4957\n",
      "4/5, train_loss: 0.5001\n",
      "5/5, train_loss: 0.4648\n",
      "6/5, train_loss: 0.5435\n",
      "epoch 498 average loss: 0.4959\n",
      "----------\n",
      "epoch 499/600\n",
      "1/5, train_loss: 0.4875\n",
      "2/5, train_loss: 0.5324\n",
      "3/5, train_loss: 0.4814\n",
      "4/5, train_loss: 0.5027\n",
      "5/5, train_loss: 0.4556\n",
      "6/5, train_loss: 0.5296\n",
      "epoch 499 average loss: 0.4982\n",
      "----------\n",
      "epoch 500/600\n",
      "1/5, train_loss: 0.4716\n",
      "2/5, train_loss: 0.4543\n",
      "3/5, train_loss: 0.4535\n",
      "4/5, train_loss: 0.4231\n",
      "5/5, train_loss: 0.4938\n",
      "6/5, train_loss: 0.4959\n",
      "epoch 500 average loss: 0.4654\n",
      "current epoch: 500 current mean dice: 0.0004 \n",
      "best mean dice: 0.0680  at epoch: 460\n",
      "----------\n",
      "epoch 501/600\n",
      "1/5, train_loss: 0.4769\n",
      "2/5, train_loss: 0.4965\n",
      "3/5, train_loss: 0.4990\n",
      "4/5, train_loss: 0.4987\n",
      "5/5, train_loss: 0.5038\n",
      "6/5, train_loss: 0.4158\n",
      "epoch 501 average loss: 0.4818\n",
      "----------\n",
      "epoch 502/600\n",
      "1/5, train_loss: 0.4833\n",
      "2/5, train_loss: 0.5073\n",
      "3/5, train_loss: 0.5176\n",
      "4/5, train_loss: 0.4852\n",
      "5/5, train_loss: 0.4992\n",
      "6/5, train_loss: 0.5693\n",
      "epoch 502 average loss: 0.5103\n",
      "----------\n",
      "epoch 503/600\n",
      "1/5, train_loss: 0.4691\n",
      "2/5, train_loss: 0.4702\n",
      "3/5, train_loss: 0.4850\n",
      "4/5, train_loss: 0.5214\n",
      "5/5, train_loss: 0.5188\n",
      "6/5, train_loss: 0.5249\n",
      "epoch 503 average loss: 0.4982\n",
      "----------\n",
      "epoch 504/600\n",
      "1/5, train_loss: 0.4507\n",
      "2/5, train_loss: 0.4900\n",
      "3/5, train_loss: 0.4658\n",
      "4/5, train_loss: 0.5054\n",
      "5/5, train_loss: 0.5060\n",
      "6/5, train_loss: 0.5154\n",
      "epoch 504 average loss: 0.4889\n",
      "----------\n",
      "epoch 505/600\n",
      "1/5, train_loss: 0.4475\n",
      "2/5, train_loss: 0.4835\n",
      "3/5, train_loss: 0.4990\n",
      "4/5, train_loss: 0.4793\n",
      "5/5, train_loss: 0.4447\n",
      "6/5, train_loss: 0.4984\n",
      "epoch 505 average loss: 0.4754\n",
      "----------\n",
      "epoch 506/600\n",
      "1/5, train_loss: 0.4307\n",
      "2/5, train_loss: 0.4344\n",
      "3/5, train_loss: 0.4661\n",
      "4/5, train_loss: 0.4889\n",
      "5/5, train_loss: 0.4869\n",
      "6/5, train_loss: 0.4242\n",
      "epoch 506 average loss: 0.4552\n",
      "----------\n",
      "epoch 507/600\n",
      "1/5, train_loss: 0.4759\n",
      "2/5, train_loss: 0.4990\n",
      "3/5, train_loss: 0.4993\n",
      "4/5, train_loss: 0.4738\n",
      "5/5, train_loss: 0.4607\n",
      "6/5, train_loss: 0.4768\n",
      "epoch 507 average loss: 0.4809\n",
      "----------\n",
      "epoch 508/600\n",
      "1/5, train_loss: 0.5291\n",
      "2/5, train_loss: 0.4457\n",
      "3/5, train_loss: 0.4807\n",
      "4/5, train_loss: 0.4175\n",
      "5/5, train_loss: 0.4462\n",
      "6/5, train_loss: 0.3898\n",
      "epoch 508 average loss: 0.4515\n",
      "----------\n",
      "epoch 509/600\n",
      "1/5, train_loss: 0.4499\n",
      "2/5, train_loss: 0.4770\n",
      "3/5, train_loss: 0.4874\n",
      "4/5, train_loss: 0.4504\n",
      "5/5, train_loss: 0.4646\n",
      "6/5, train_loss: 0.4560\n",
      "epoch 509 average loss: 0.4642\n",
      "----------\n",
      "epoch 510/600\n",
      "1/5, train_loss: 0.5282\n",
      "2/5, train_loss: 0.4459\n",
      "3/5, train_loss: 0.5061\n",
      "4/5, train_loss: 0.4878\n",
      "5/5, train_loss: 0.4555\n",
      "6/5, train_loss: 0.4412\n",
      "epoch 510 average loss: 0.4774\n",
      "current epoch: 510 current mean dice: 0.0376 \n",
      "best mean dice: 0.0680  at epoch: 460\n",
      "----------\n",
      "epoch 511/600\n",
      "1/5, train_loss: 0.4621\n",
      "2/5, train_loss: 0.4705\n",
      "3/5, train_loss: 0.4608\n",
      "4/5, train_loss: 0.4759\n",
      "5/5, train_loss: 0.4175\n",
      "6/5, train_loss: 0.4707\n",
      "epoch 511 average loss: 0.4596\n",
      "----------\n",
      "epoch 512/600\n",
      "1/5, train_loss: 0.5199\n",
      "2/5, train_loss: 0.4865\n",
      "3/5, train_loss: 0.4446\n",
      "4/5, train_loss: 0.4431\n",
      "5/5, train_loss: 0.5227\n",
      "6/5, train_loss: 0.3978\n",
      "epoch 512 average loss: 0.4691\n",
      "----------\n",
      "epoch 513/600\n",
      "1/5, train_loss: 0.4949\n",
      "2/5, train_loss: 0.5054\n",
      "3/5, train_loss: 0.4432\n",
      "4/5, train_loss: 0.4789\n",
      "5/5, train_loss: 0.4780\n",
      "6/5, train_loss: 0.4646\n",
      "epoch 513 average loss: 0.4775\n",
      "----------\n",
      "epoch 514/600\n",
      "1/5, train_loss: 0.4937\n",
      "2/5, train_loss: 0.4670\n",
      "3/5, train_loss: 0.5019\n",
      "4/5, train_loss: 0.5560\n",
      "5/5, train_loss: 0.5273\n",
      "6/5, train_loss: 0.4626\n",
      "epoch 514 average loss: 0.5014\n",
      "----------\n",
      "epoch 515/600\n",
      "1/5, train_loss: 0.4905\n",
      "2/5, train_loss: 0.5213\n",
      "3/5, train_loss: 0.4659\n",
      "4/5, train_loss: 0.5046\n",
      "5/5, train_loss: 0.4887\n",
      "6/5, train_loss: 0.4426\n",
      "epoch 515 average loss: 0.4856\n",
      "----------\n",
      "epoch 516/600\n",
      "1/5, train_loss: 0.4842\n",
      "2/5, train_loss: 0.4498\n",
      "3/5, train_loss: 0.5277\n",
      "4/5, train_loss: 0.4275\n",
      "5/5, train_loss: 0.4718\n",
      "6/5, train_loss: 0.4787\n",
      "epoch 516 average loss: 0.4733\n",
      "----------\n",
      "epoch 517/600\n",
      "1/5, train_loss: 0.5190\n",
      "2/5, train_loss: 0.4194\n",
      "3/5, train_loss: 0.4363\n",
      "4/5, train_loss: 0.4893\n",
      "5/5, train_loss: 0.4785\n",
      "6/5, train_loss: 0.4638\n",
      "epoch 517 average loss: 0.4677\n",
      "----------\n",
      "epoch 518/600\n",
      "1/5, train_loss: 0.5047\n",
      "2/5, train_loss: 0.5177\n",
      "3/5, train_loss: 0.4640\n",
      "4/5, train_loss: 0.4472\n",
      "5/5, train_loss: 0.5357\n",
      "6/5, train_loss: 0.4728\n",
      "epoch 518 average loss: 0.4904\n",
      "----------\n",
      "epoch 519/600\n",
      "1/5, train_loss: 0.5056\n",
      "2/5, train_loss: 0.4631\n",
      "3/5, train_loss: 0.4493\n",
      "4/5, train_loss: 0.4851\n",
      "5/5, train_loss: 0.4572\n",
      "6/5, train_loss: 0.4991\n",
      "epoch 519 average loss: 0.4766\n",
      "----------\n",
      "epoch 520/600\n",
      "1/5, train_loss: 0.4639\n",
      "2/5, train_loss: 0.4624\n",
      "3/5, train_loss: 0.5089\n",
      "4/5, train_loss: 0.5403\n",
      "5/5, train_loss: 0.4532\n",
      "6/5, train_loss: 0.5286\n",
      "epoch 520 average loss: 0.4929\n",
      "aim name Task002_Heart_AttentionUnet\n",
      "saved new best metric model at the 520th epoch\n",
      "current epoch: 520 current mean dice: 0.0690 \n",
      "best mean dice: 0.0690  at epoch: 520\n",
      "----------\n",
      "epoch 521/600\n",
      "1/5, train_loss: 0.4233\n",
      "2/5, train_loss: 0.5198\n",
      "3/5, train_loss: 0.4557\n",
      "4/5, train_loss: 0.4750\n",
      "5/5, train_loss: 0.4730\n",
      "6/5, train_loss: 0.5171\n",
      "epoch 521 average loss: 0.4773\n",
      "----------\n",
      "epoch 522/600\n",
      "1/5, train_loss: 0.4593\n",
      "2/5, train_loss: 0.4502\n",
      "3/5, train_loss: 0.5335\n",
      "4/5, train_loss: 0.4665\n",
      "5/5, train_loss: 0.4886\n",
      "6/5, train_loss: 0.4824\n",
      "epoch 522 average loss: 0.4801\n",
      "----------\n",
      "epoch 523/600\n",
      "1/5, train_loss: 0.4692\n",
      "2/5, train_loss: 0.4475\n",
      "3/5, train_loss: 0.4428\n",
      "4/5, train_loss: 0.5326\n",
      "5/5, train_loss: 0.4552\n",
      "6/5, train_loss: 0.4717\n",
      "epoch 523 average loss: 0.4698\n",
      "----------\n",
      "epoch 524/600\n",
      "1/5, train_loss: 0.4885\n",
      "2/5, train_loss: 0.4491\n",
      "3/5, train_loss: 0.4484\n",
      "4/5, train_loss: 0.4931\n",
      "5/5, train_loss: 0.4238\n",
      "6/5, train_loss: 0.4791\n",
      "epoch 524 average loss: 0.4637\n",
      "----------\n",
      "epoch 525/600\n",
      "1/5, train_loss: 0.4600\n",
      "2/5, train_loss: 0.5106\n",
      "3/5, train_loss: 0.4806\n",
      "4/5, train_loss: 0.4998\n",
      "5/5, train_loss: 0.5042\n",
      "6/5, train_loss: 0.4336\n",
      "epoch 525 average loss: 0.4815\n",
      "----------\n",
      "epoch 526/600\n",
      "1/5, train_loss: 0.4549\n",
      "2/5, train_loss: 0.5321\n",
      "3/5, train_loss: 0.4961\n",
      "4/5, train_loss: 0.4705\n",
      "5/5, train_loss: 0.4880\n",
      "6/5, train_loss: 0.5238\n",
      "epoch 526 average loss: 0.4942\n",
      "----------\n",
      "epoch 527/600\n",
      "1/5, train_loss: 0.4703\n",
      "2/5, train_loss: 0.4903\n",
      "3/5, train_loss: 0.4662\n",
      "4/5, train_loss: 0.4985\n",
      "5/5, train_loss: 0.4733\n",
      "6/5, train_loss: 0.5270\n",
      "epoch 527 average loss: 0.4876\n",
      "----------\n",
      "epoch 528/600\n",
      "1/5, train_loss: 0.5006\n",
      "2/5, train_loss: 0.4656\n",
      "3/5, train_loss: 0.4413\n",
      "4/5, train_loss: 0.5173\n",
      "5/5, train_loss: 0.4486\n",
      "6/5, train_loss: 0.4620\n",
      "epoch 528 average loss: 0.4726\n",
      "----------\n",
      "epoch 529/600\n",
      "1/5, train_loss: 0.4757\n",
      "2/5, train_loss: 0.4092\n",
      "3/5, train_loss: 0.5175\n",
      "4/5, train_loss: 0.4940\n",
      "5/5, train_loss: 0.4477\n",
      "6/5, train_loss: 0.5689\n",
      "epoch 529 average loss: 0.4855\n",
      "----------\n",
      "epoch 530/600\n",
      "1/5, train_loss: 0.4206\n",
      "2/5, train_loss: 0.4676\n",
      "3/5, train_loss: 0.4798\n",
      "4/5, train_loss: 0.4678\n",
      "5/5, train_loss: 0.4320\n",
      "6/5, train_loss: 0.5143\n",
      "epoch 530 average loss: 0.4637\n",
      "current epoch: 530 current mean dice: 0.0004 \n",
      "best mean dice: 0.0690  at epoch: 520\n",
      "----------\n",
      "epoch 531/600\n",
      "1/5, train_loss: 0.4527\n",
      "2/5, train_loss: 0.4665\n",
      "3/5, train_loss: 0.4598\n",
      "4/5, train_loss: 0.5010\n",
      "5/5, train_loss: 0.5118\n",
      "6/5, train_loss: 0.4064\n",
      "epoch 531 average loss: 0.4664\n",
      "----------\n",
      "epoch 532/600\n",
      "1/5, train_loss: 0.4390\n",
      "2/5, train_loss: 0.4924\n",
      "3/5, train_loss: 0.4549\n",
      "4/5, train_loss: 0.4856\n",
      "5/5, train_loss: 0.4336\n",
      "6/5, train_loss: 0.4593\n",
      "epoch 532 average loss: 0.4608\n",
      "----------\n",
      "epoch 533/600\n",
      "1/5, train_loss: 0.5247\n",
      "2/5, train_loss: 0.4743\n",
      "3/5, train_loss: 0.5021\n",
      "4/5, train_loss: 0.4496\n",
      "5/5, train_loss: 0.4445\n",
      "6/5, train_loss: 0.4788\n",
      "epoch 533 average loss: 0.4790\n",
      "----------\n",
      "epoch 534/600\n",
      "1/5, train_loss: 0.5374\n",
      "2/5, train_loss: 0.3896\n",
      "3/5, train_loss: 0.4684\n",
      "4/5, train_loss: 0.4948\n",
      "5/5, train_loss: 0.5083\n",
      "6/5, train_loss: 0.4303\n",
      "epoch 534 average loss: 0.4715\n",
      "----------\n",
      "epoch 535/600\n",
      "1/5, train_loss: 0.4665\n",
      "2/5, train_loss: 0.4850\n",
      "3/5, train_loss: 0.4335\n",
      "4/5, train_loss: 0.4402\n",
      "5/5, train_loss: 0.4601\n",
      "6/5, train_loss: 0.4790\n",
      "epoch 535 average loss: 0.4607\n",
      "----------\n",
      "epoch 536/600\n",
      "1/5, train_loss: 0.4756\n",
      "2/5, train_loss: 0.5079\n",
      "3/5, train_loss: 0.4641\n",
      "4/5, train_loss: 0.4815\n",
      "5/5, train_loss: 0.4455\n",
      "6/5, train_loss: 0.4850\n",
      "epoch 536 average loss: 0.4766\n",
      "----------\n",
      "epoch 537/600\n",
      "1/5, train_loss: 0.4898\n",
      "2/5, train_loss: 0.4764\n",
      "3/5, train_loss: 0.4994\n",
      "4/5, train_loss: 0.4923\n",
      "5/5, train_loss: 0.4649\n",
      "6/5, train_loss: 0.5651\n",
      "epoch 537 average loss: 0.4980\n",
      "----------\n",
      "epoch 538/600\n",
      "1/5, train_loss: 0.4948\n",
      "2/5, train_loss: 0.4383\n",
      "3/5, train_loss: 0.4277\n",
      "4/5, train_loss: 0.4794\n",
      "5/5, train_loss: 0.4656\n",
      "6/5, train_loss: 0.4551\n",
      "epoch 538 average loss: 0.4602\n",
      "----------\n",
      "epoch 539/600\n",
      "1/5, train_loss: 0.4117\n",
      "2/5, train_loss: 0.4645\n",
      "3/5, train_loss: 0.4804\n",
      "4/5, train_loss: 0.4931\n",
      "5/5, train_loss: 0.4630\n",
      "6/5, train_loss: 0.4278\n",
      "epoch 539 average loss: 0.4568\n",
      "----------\n",
      "epoch 540/600\n",
      "1/5, train_loss: 0.4519\n",
      "2/5, train_loss: 0.4833\n",
      "3/5, train_loss: 0.4638\n",
      "4/5, train_loss: 0.4547\n",
      "5/5, train_loss: 0.4903\n",
      "6/5, train_loss: 0.5488\n",
      "epoch 540 average loss: 0.4821\n",
      "aim name Task002_Heart_AttentionUnet\n",
      "saved new best metric model at the 540th epoch\n",
      "current epoch: 540 current mean dice: 0.0715 \n",
      "best mean dice: 0.0715  at epoch: 540\n",
      "----------\n",
      "epoch 541/600\n",
      "1/5, train_loss: 0.4852\n",
      "2/5, train_loss: 0.5018\n",
      "3/5, train_loss: 0.4594\n",
      "4/5, train_loss: 0.4117\n",
      "5/5, train_loss: 0.4977\n",
      "6/5, train_loss: 0.4012\n",
      "epoch 541 average loss: 0.4595\n",
      "----------\n",
      "epoch 542/600\n",
      "1/5, train_loss: 0.4691\n",
      "2/5, train_loss: 0.4084\n",
      "3/5, train_loss: 0.3891\n",
      "4/5, train_loss: 0.5354\n",
      "5/5, train_loss: 0.4524\n",
      "6/5, train_loss: 0.4694\n",
      "epoch 542 average loss: 0.4540\n",
      "----------\n",
      "epoch 543/600\n",
      "1/5, train_loss: 0.5423\n",
      "2/5, train_loss: 0.5051\n",
      "3/5, train_loss: 0.4658\n",
      "4/5, train_loss: 0.4925\n",
      "5/5, train_loss: 0.4861\n",
      "6/5, train_loss: 0.4872\n",
      "epoch 543 average loss: 0.4965\n",
      "----------\n",
      "epoch 544/600\n",
      "1/5, train_loss: 0.4724\n",
      "2/5, train_loss: 0.4920\n",
      "3/5, train_loss: 0.4647\n",
      "4/5, train_loss: 0.4652\n",
      "5/5, train_loss: 0.4704\n",
      "6/5, train_loss: 0.4216\n",
      "epoch 544 average loss: 0.4644\n",
      "----------\n",
      "epoch 545/600\n",
      "1/5, train_loss: 0.4985\n",
      "2/5, train_loss: 0.4457\n",
      "3/5, train_loss: 0.5065\n",
      "4/5, train_loss: 0.4890\n",
      "5/5, train_loss: 0.4315\n",
      "6/5, train_loss: 0.5149\n",
      "epoch 545 average loss: 0.4810\n",
      "----------\n",
      "epoch 546/600\n",
      "1/5, train_loss: 0.5111\n",
      "2/5, train_loss: 0.5442\n",
      "3/5, train_loss: 0.4991\n",
      "4/5, train_loss: 0.4526\n",
      "5/5, train_loss: 0.4463\n",
      "6/5, train_loss: 0.4636\n",
      "epoch 546 average loss: 0.4861\n",
      "----------\n",
      "epoch 547/600\n",
      "1/5, train_loss: 0.5092\n",
      "2/5, train_loss: 0.4559\n",
      "3/5, train_loss: 0.4476\n",
      "4/5, train_loss: 0.4753\n",
      "5/5, train_loss: 0.4416\n",
      "6/5, train_loss: 0.4220\n",
      "epoch 547 average loss: 0.4586\n",
      "----------\n",
      "epoch 548/600\n",
      "1/5, train_loss: 0.4297\n",
      "2/5, train_loss: 0.4530\n",
      "3/5, train_loss: 0.4335\n",
      "4/5, train_loss: 0.5201\n",
      "5/5, train_loss: 0.5215\n",
      "6/5, train_loss: 0.5290\n",
      "epoch 548 average loss: 0.4811\n",
      "----------\n",
      "epoch 549/600\n",
      "1/5, train_loss: 0.4157\n",
      "2/5, train_loss: 0.4609\n",
      "3/5, train_loss: 0.4689\n",
      "4/5, train_loss: 0.5060\n",
      "5/5, train_loss: 0.4660\n",
      "6/5, train_loss: 0.4028\n",
      "epoch 549 average loss: 0.4534\n",
      "----------\n",
      "epoch 550/600\n",
      "1/5, train_loss: 0.4727\n",
      "2/5, train_loss: 0.4302\n",
      "3/5, train_loss: 0.4294\n",
      "4/5, train_loss: 0.4317\n",
      "5/5, train_loss: 0.4966\n",
      "6/5, train_loss: 0.5038\n",
      "epoch 550 average loss: 0.4607\n",
      "current epoch: 550 current mean dice: 0.0003 \n",
      "best mean dice: 0.0715  at epoch: 540\n",
      "----------\n",
      "epoch 551/600\n",
      "1/5, train_loss: 0.4557\n",
      "2/5, train_loss: 0.4737\n",
      "3/5, train_loss: 0.4797\n",
      "4/5, train_loss: 0.4491\n",
      "5/5, train_loss: 0.4592\n",
      "6/5, train_loss: 0.4548\n",
      "epoch 551 average loss: 0.4620\n",
      "----------\n",
      "epoch 552/600\n",
      "1/5, train_loss: 0.4588\n",
      "2/5, train_loss: 0.4880\n",
      "3/5, train_loss: 0.4611\n",
      "4/5, train_loss: 0.4278\n",
      "5/5, train_loss: 0.4147\n",
      "6/5, train_loss: 0.5249\n",
      "epoch 552 average loss: 0.4625\n",
      "----------\n",
      "epoch 553/600\n",
      "1/5, train_loss: 0.5009\n",
      "2/5, train_loss: 0.5277\n",
      "3/5, train_loss: 0.4940\n",
      "4/5, train_loss: 0.4699\n",
      "5/5, train_loss: 0.4370\n",
      "6/5, train_loss: 0.5244\n",
      "epoch 553 average loss: 0.4923\n",
      "----------\n",
      "epoch 554/600\n",
      "1/5, train_loss: 0.4868\n",
      "2/5, train_loss: 0.4619\n",
      "3/5, train_loss: 0.4235\n",
      "4/5, train_loss: 0.4321\n",
      "5/5, train_loss: 0.4471\n",
      "6/5, train_loss: 0.4411\n",
      "epoch 554 average loss: 0.4487\n",
      "----------\n",
      "epoch 555/600\n",
      "1/5, train_loss: 0.4620\n",
      "2/5, train_loss: 0.4091\n",
      "3/5, train_loss: 0.4686\n",
      "4/5, train_loss: 0.4978\n",
      "5/5, train_loss: 0.3915\n",
      "6/5, train_loss: 0.5041\n",
      "epoch 555 average loss: 0.4555\n",
      "----------\n",
      "epoch 556/600\n",
      "1/5, train_loss: 0.4642\n",
      "2/5, train_loss: 0.4602\n",
      "3/5, train_loss: 0.4193\n",
      "4/5, train_loss: 0.4826\n",
      "5/5, train_loss: 0.4620\n",
      "6/5, train_loss: 0.3342\n",
      "epoch 556 average loss: 0.4371\n",
      "----------\n",
      "epoch 557/600\n",
      "1/5, train_loss: 0.4586\n",
      "2/5, train_loss: 0.4325\n",
      "3/5, train_loss: 0.4305\n",
      "4/5, train_loss: 0.4813\n",
      "5/5, train_loss: 0.4597\n",
      "6/5, train_loss: 0.4470\n",
      "epoch 557 average loss: 0.4516\n",
      "----------\n",
      "epoch 558/600\n",
      "1/5, train_loss: 0.4555\n",
      "2/5, train_loss: 0.4236\n",
      "3/5, train_loss: 0.4411\n",
      "4/5, train_loss: 0.4331\n",
      "5/5, train_loss: 0.4154\n",
      "6/5, train_loss: 0.4826\n",
      "epoch 558 average loss: 0.4419\n",
      "----------\n",
      "epoch 559/600\n",
      "1/5, train_loss: 0.4765\n",
      "2/5, train_loss: 0.5302\n",
      "3/5, train_loss: 0.5168\n",
      "4/5, train_loss: 0.5301\n",
      "5/5, train_loss: 0.4382\n",
      "6/5, train_loss: 0.4640\n",
      "epoch 559 average loss: 0.4926\n",
      "----------\n",
      "epoch 560/600\n",
      "1/5, train_loss: 0.5069\n",
      "2/5, train_loss: 0.4688\n",
      "3/5, train_loss: 0.4589\n",
      "4/5, train_loss: 0.4353\n",
      "5/5, train_loss: 0.4552\n",
      "6/5, train_loss: 0.4020\n",
      "epoch 560 average loss: 0.4545\n",
      "current epoch: 560 current mean dice: 0.0003 \n",
      "best mean dice: 0.0715  at epoch: 540\n",
      "----------\n",
      "epoch 561/600\n",
      "1/5, train_loss: 0.4701\n",
      "2/5, train_loss: 0.4831\n",
      "3/5, train_loss: 0.4702\n",
      "4/5, train_loss: 0.4294\n",
      "5/5, train_loss: 0.4669\n",
      "6/5, train_loss: 0.4453\n",
      "epoch 561 average loss: 0.4608\n",
      "----------\n",
      "epoch 562/600\n",
      "1/5, train_loss: 0.4637\n",
      "2/5, train_loss: 0.5022\n",
      "3/5, train_loss: 0.4642\n",
      "4/5, train_loss: 0.4832\n",
      "5/5, train_loss: 0.4630\n",
      "6/5, train_loss: 0.5082\n",
      "epoch 562 average loss: 0.4807\n",
      "----------\n",
      "epoch 563/600\n",
      "1/5, train_loss: 0.4672\n",
      "2/5, train_loss: 0.4631\n",
      "3/5, train_loss: 0.4599\n",
      "4/5, train_loss: 0.4786\n",
      "5/5, train_loss: 0.4700\n",
      "6/5, train_loss: 0.4707\n",
      "epoch 563 average loss: 0.4682\n",
      "----------\n",
      "epoch 564/600\n",
      "1/5, train_loss: 0.5150\n",
      "2/5, train_loss: 0.4878\n",
      "3/5, train_loss: 0.4477\n",
      "4/5, train_loss: 0.4780\n",
      "5/5, train_loss: 0.4781\n",
      "6/5, train_loss: 0.4535\n",
      "epoch 564 average loss: 0.4767\n",
      "----------\n",
      "epoch 565/600\n",
      "1/5, train_loss: 0.5356\n",
      "2/5, train_loss: 0.4918\n",
      "3/5, train_loss: 0.4670\n",
      "4/5, train_loss: 0.5641\n",
      "5/5, train_loss: 0.4288\n",
      "6/5, train_loss: 0.4693\n",
      "epoch 565 average loss: 0.4928\n",
      "----------\n",
      "epoch 566/600\n",
      "1/5, train_loss: 0.4665\n",
      "2/5, train_loss: 0.4490\n",
      "3/5, train_loss: 0.4295\n",
      "4/5, train_loss: 0.4573\n",
      "5/5, train_loss: 0.4429\n",
      "6/5, train_loss: 0.5275\n",
      "epoch 566 average loss: 0.4621\n",
      "----------\n",
      "epoch 567/600\n",
      "1/5, train_loss: 0.4586\n",
      "2/5, train_loss: 0.4635\n",
      "3/5, train_loss: 0.4711\n",
      "4/5, train_loss: 0.5418\n",
      "5/5, train_loss: 0.4535\n",
      "6/5, train_loss: 0.4463\n",
      "epoch 567 average loss: 0.4725\n",
      "----------\n",
      "epoch 568/600\n",
      "1/5, train_loss: 0.4702\n",
      "2/5, train_loss: 0.5079\n",
      "3/5, train_loss: 0.5143\n",
      "4/5, train_loss: 0.4399\n",
      "5/5, train_loss: 0.4368\n",
      "6/5, train_loss: 0.5277\n",
      "epoch 568 average loss: 0.4828\n",
      "----------\n",
      "epoch 569/600\n",
      "1/5, train_loss: 0.4957\n",
      "2/5, train_loss: 0.4160\n",
      "3/5, train_loss: 0.4769\n",
      "4/5, train_loss: 0.5135\n",
      "5/5, train_loss: 0.4350\n",
      "6/5, train_loss: 0.4378\n",
      "epoch 569 average loss: 0.4625\n",
      "----------\n",
      "epoch 570/600\n",
      "1/5, train_loss: 0.4691\n",
      "2/5, train_loss: 0.4432\n",
      "3/5, train_loss: 0.4419\n",
      "4/5, train_loss: 0.5361\n",
      "5/5, train_loss: 0.4505\n",
      "6/5, train_loss: 0.4297\n",
      "epoch 570 average loss: 0.4618\n",
      "current epoch: 570 current mean dice: 0.0708 \n",
      "best mean dice: 0.0715  at epoch: 540\n",
      "----------\n",
      "epoch 571/600\n",
      "1/5, train_loss: 0.5007\n",
      "2/5, train_loss: 0.4925\n",
      "3/5, train_loss: 0.4830\n",
      "4/5, train_loss: 0.5305\n",
      "5/5, train_loss: 0.4796\n",
      "6/5, train_loss: 0.5120\n",
      "epoch 571 average loss: 0.4997\n",
      "----------\n",
      "epoch 572/600\n",
      "1/5, train_loss: 0.5001\n",
      "2/5, train_loss: 0.4338\n",
      "3/5, train_loss: 0.4382\n",
      "4/5, train_loss: 0.4871\n",
      "5/5, train_loss: 0.4445\n",
      "6/5, train_loss: 0.4891\n",
      "epoch 572 average loss: 0.4655\n",
      "----------\n",
      "epoch 573/600\n",
      "1/5, train_loss: 0.4650\n",
      "2/5, train_loss: 0.5027\n",
      "3/5, train_loss: 0.5245\n",
      "4/5, train_loss: 0.4451\n",
      "5/5, train_loss: 0.4949\n",
      "6/5, train_loss: 0.5067\n",
      "epoch 573 average loss: 0.4898\n",
      "----------\n",
      "epoch 574/600\n",
      "1/5, train_loss: 0.5138\n",
      "2/5, train_loss: 0.4547\n",
      "3/5, train_loss: 0.4590\n",
      "4/5, train_loss: 0.4324\n",
      "5/5, train_loss: 0.4221\n",
      "6/5, train_loss: 0.4113\n",
      "epoch 574 average loss: 0.4489\n",
      "----------\n",
      "epoch 575/600\n",
      "1/5, train_loss: 0.4290\n",
      "2/5, train_loss: 0.4592\n",
      "3/5, train_loss: 0.4377\n",
      "4/5, train_loss: 0.5267\n",
      "5/5, train_loss: 0.4474\n",
      "6/5, train_loss: 0.4649\n",
      "epoch 575 average loss: 0.4608\n",
      "----------\n",
      "epoch 576/600\n",
      "1/5, train_loss: 0.4798\n",
      "2/5, train_loss: 0.5380\n",
      "3/5, train_loss: 0.4592\n",
      "4/5, train_loss: 0.4517\n",
      "5/5, train_loss: 0.4194\n",
      "6/5, train_loss: 0.4989\n",
      "epoch 576 average loss: 0.4745\n",
      "----------\n",
      "epoch 577/600\n",
      "1/5, train_loss: 0.5082\n",
      "2/5, train_loss: 0.4814\n",
      "3/5, train_loss: 0.5118\n",
      "4/5, train_loss: 0.4941\n",
      "5/5, train_loss: 0.4732\n",
      "6/5, train_loss: 0.3877\n",
      "epoch 577 average loss: 0.4761\n",
      "----------\n",
      "epoch 578/600\n",
      "1/5, train_loss: 0.4836\n",
      "2/5, train_loss: 0.5193\n",
      "3/5, train_loss: 0.4596\n",
      "4/5, train_loss: 0.4730\n",
      "5/5, train_loss: 0.4468\n",
      "6/5, train_loss: 0.4218\n",
      "epoch 578 average loss: 0.4673\n",
      "----------\n",
      "epoch 579/600\n",
      "1/5, train_loss: 0.4567\n",
      "2/5, train_loss: 0.4413\n",
      "3/5, train_loss: 0.4696\n",
      "4/5, train_loss: 0.4395\n",
      "5/5, train_loss: 0.4818\n",
      "6/5, train_loss: 0.5113\n",
      "epoch 579 average loss: 0.4667\n",
      "----------\n",
      "epoch 580/600\n",
      "1/5, train_loss: 0.4450\n",
      "2/5, train_loss: 0.4844\n",
      "3/5, train_loss: 0.4267\n",
      "4/5, train_loss: 0.4372\n",
      "5/5, train_loss: 0.4719\n",
      "6/5, train_loss: 0.4623\n",
      "epoch 580 average loss: 0.4546\n",
      "aim name Task002_Heart_AttentionUnet\n",
      "saved new best metric model at the 580th epoch\n",
      "current epoch: 580 current mean dice: 0.0734 \n",
      "best mean dice: 0.0734  at epoch: 580\n",
      "----------\n",
      "epoch 581/600\n",
      "1/5, train_loss: 0.4204\n",
      "2/5, train_loss: 0.4475\n",
      "3/5, train_loss: 0.4418\n",
      "4/5, train_loss: 0.4482\n",
      "5/5, train_loss: 0.4770\n",
      "6/5, train_loss: 0.4776\n",
      "epoch 581 average loss: 0.4521\n",
      "----------\n",
      "epoch 582/600\n",
      "1/5, train_loss: 0.4615\n",
      "2/5, train_loss: 0.4866\n",
      "3/5, train_loss: 0.4797\n",
      "4/5, train_loss: 0.4801\n",
      "5/5, train_loss: 0.4089\n",
      "6/5, train_loss: 0.3866\n",
      "epoch 582 average loss: 0.4506\n",
      "----------\n",
      "epoch 583/600\n",
      "1/5, train_loss: 0.4332\n",
      "2/5, train_loss: 0.5093\n",
      "3/5, train_loss: 0.4650\n",
      "4/5, train_loss: 0.4709\n",
      "5/5, train_loss: 0.4906\n",
      "6/5, train_loss: 0.4110\n",
      "epoch 583 average loss: 0.4633\n",
      "----------\n",
      "epoch 584/600\n",
      "1/5, train_loss: 0.4659\n",
      "2/5, train_loss: 0.4226\n",
      "3/5, train_loss: 0.4028\n",
      "4/5, train_loss: 0.4358\n",
      "5/5, train_loss: 0.4197\n",
      "6/5, train_loss: 0.4515\n",
      "epoch 584 average loss: 0.4331\n",
      "----------\n",
      "epoch 585/600\n",
      "1/5, train_loss: 0.4361\n",
      "2/5, train_loss: 0.4756\n",
      "3/5, train_loss: 0.4707\n",
      "4/5, train_loss: 0.4996\n",
      "5/5, train_loss: 0.5029\n",
      "6/5, train_loss: 0.5624\n",
      "epoch 585 average loss: 0.4912\n",
      "----------\n",
      "epoch 586/600\n",
      "1/5, train_loss: 0.4344\n",
      "2/5, train_loss: 0.4494\n",
      "3/5, train_loss: 0.4395\n",
      "4/5, train_loss: 0.4560\n",
      "5/5, train_loss: 0.4652\n",
      "6/5, train_loss: 0.3674\n",
      "epoch 586 average loss: 0.4353\n",
      "----------\n",
      "epoch 587/600\n",
      "1/5, train_loss: 0.4869\n",
      "2/5, train_loss: 0.4212\n",
      "3/5, train_loss: 0.4293\n",
      "4/5, train_loss: 0.4917\n",
      "5/5, train_loss: 0.4462\n",
      "6/5, train_loss: 0.3859\n",
      "epoch 587 average loss: 0.4435\n",
      "----------\n",
      "epoch 588/600\n",
      "1/5, train_loss: 0.4683\n",
      "2/5, train_loss: 0.4848\n",
      "3/5, train_loss: 0.3703\n",
      "4/5, train_loss: 0.4526\n",
      "5/5, train_loss: 0.4438\n",
      "6/5, train_loss: 0.4302\n",
      "epoch 588 average loss: 0.4417\n",
      "----------\n",
      "epoch 589/600\n",
      "1/5, train_loss: 0.4363\n",
      "2/5, train_loss: 0.4448\n",
      "3/5, train_loss: 0.4936\n",
      "4/5, train_loss: 0.4361\n",
      "5/5, train_loss: 0.4834\n",
      "6/5, train_loss: 0.5297\n",
      "epoch 589 average loss: 0.4707\n",
      "----------\n",
      "epoch 590/600\n",
      "1/5, train_loss: 0.5047\n",
      "2/5, train_loss: 0.4969\n",
      "3/5, train_loss: 0.4330\n",
      "4/5, train_loss: 0.4510\n",
      "5/5, train_loss: 0.4723\n",
      "6/5, train_loss: 0.4155\n",
      "epoch 590 average loss: 0.4622\n",
      "current epoch: 590 current mean dice: 0.0003 \n",
      "best mean dice: 0.0734  at epoch: 580\n",
      "----------\n",
      "epoch 591/600\n",
      "1/5, train_loss: 0.4400\n",
      "2/5, train_loss: 0.4657\n",
      "3/5, train_loss: 0.4962\n",
      "4/5, train_loss: 0.5146\n",
      "5/5, train_loss: 0.4128\n",
      "6/5, train_loss: 0.3913\n",
      "epoch 591 average loss: 0.4534\n",
      "----------\n",
      "epoch 592/600\n",
      "1/5, train_loss: 0.4290\n",
      "2/5, train_loss: 0.5195\n",
      "3/5, train_loss: 0.4574\n",
      "4/5, train_loss: 0.3671\n",
      "5/5, train_loss: 0.4245\n",
      "6/5, train_loss: 0.5161\n",
      "epoch 592 average loss: 0.4523\n",
      "----------\n",
      "epoch 593/600\n",
      "1/5, train_loss: 0.4349\n",
      "2/5, train_loss: 0.4973\n",
      "3/5, train_loss: 0.4694\n",
      "4/5, train_loss: 0.4149\n",
      "5/5, train_loss: 0.4137\n",
      "6/5, train_loss: 0.4338\n",
      "epoch 593 average loss: 0.4440\n",
      "----------\n",
      "epoch 594/600\n",
      "1/5, train_loss: 0.5314\n",
      "2/5, train_loss: 0.4934\n",
      "3/5, train_loss: 0.5045\n",
      "4/5, train_loss: 0.4528\n",
      "5/5, train_loss: 0.4338\n",
      "6/5, train_loss: 0.3767\n",
      "epoch 594 average loss: 0.4654\n",
      "----------\n",
      "epoch 595/600\n",
      "1/5, train_loss: 0.4508\n",
      "2/5, train_loss: 0.4639\n",
      "3/5, train_loss: 0.4892\n",
      "4/5, train_loss: 0.5122\n",
      "5/5, train_loss: 0.4663\n",
      "6/5, train_loss: 0.5074\n",
      "epoch 595 average loss: 0.4816\n",
      "----------\n",
      "epoch 596/600\n",
      "1/5, train_loss: 0.3988\n",
      "2/5, train_loss: 0.4314\n",
      "3/5, train_loss: 0.4385\n",
      "4/5, train_loss: 0.4827\n",
      "5/5, train_loss: 0.4039\n",
      "6/5, train_loss: 0.4888\n",
      "epoch 596 average loss: 0.4407\n",
      "----------\n",
      "epoch 597/600\n",
      "1/5, train_loss: 0.4642\n",
      "2/5, train_loss: 0.4418\n",
      "3/5, train_loss: 0.4391\n",
      "4/5, train_loss: 0.4987\n",
      "5/5, train_loss: 0.4278\n",
      "6/5, train_loss: 0.5629\n",
      "epoch 597 average loss: 0.4724\n",
      "----------\n",
      "epoch 598/600\n",
      "1/5, train_loss: 0.4857\n",
      "2/5, train_loss: 0.4501\n",
      "3/5, train_loss: 0.4372\n",
      "4/5, train_loss: 0.3888\n",
      "5/5, train_loss: 0.4482\n",
      "6/5, train_loss: 0.3600\n",
      "epoch 598 average loss: 0.4283\n",
      "----------\n",
      "epoch 599/600\n",
      "1/5, train_loss: 0.4447\n",
      "2/5, train_loss: 0.4724\n",
      "3/5, train_loss: 0.4327\n",
      "4/5, train_loss: 0.4579\n",
      "5/5, train_loss: 0.5145\n",
      "6/5, train_loss: 0.4809\n",
      "epoch 599 average loss: 0.4672\n",
      "----------\n",
      "epoch 600/600\n",
      "1/5, train_loss: 0.4148\n",
      "2/5, train_loss: 0.4823\n",
      "3/5, train_loss: 0.4027\n",
      "4/5, train_loss: 0.4412\n",
      "5/5, train_loss: 0.4752\n",
      "6/5, train_loss: 0.4510\n",
      "epoch 600 average loss: 0.4445\n",
      "current epoch: 600 current mean dice: 0.0003 \n",
      "best mean dice: 0.0734  at epoch: 580\n"
     ]
    }
   ],
   "source": [
    "max_epochs = 600\n",
    "val_interval = 10\n",
    "best_metric = -1\n",
    "best_metric_epoch = -1\n",
    "epoch_loss_values = []\n",
    "metric_values = []\n",
    "post_pred = Compose([AsDiscrete(argmax=True, to_onehot=2)])\n",
    "post_label = Compose([AsDiscrete(to_onehot=2)])\n",
    "\n",
    "slice_to_track = 30\n",
    "\n",
    "for epoch in range(max_epochs):\n",
    "    print(\"-\" * 10)\n",
    "    print(f\"epoch {epoch + 1}/{max_epochs}\")\n",
    "    model.train()\n",
    "    epoch_loss = 0\n",
    "    step = 0\n",
    "    for batch_data in train_loader:\n",
    "        step += 1\n",
    "        inputs, labels = (\n",
    "            batch_data[\"image\"].to(device),\n",
    "            batch_data[\"label\"].to(device),\n",
    "        )\n",
    "        \n",
    "        optimizer.zero_grad()\n",
    "        outputs = model(inputs)\n",
    "        loss = loss_function(outputs, labels)\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "        epoch_loss += loss.item()\n",
    "        print(f\"{step}/{len(train_ds) // train_loader.batch_size}, \" f\"train_loss: {loss.item():.4f}\")\n",
    "        # track batch loss metric\n",
    "        aim_run.track(loss.item(), name=\"batch_loss\", context={\"type\": loss_type})\n",
    "\n",
    "    epoch_loss /= step\n",
    "    epoch_loss_values.append(epoch_loss)\n",
    "\n",
    "    # track epoch loss metric\n",
    "    aim_run.track(epoch_loss, name=\"epoch_loss\", context={\"type\": loss_type})\n",
    "\n",
    "    print(f\"epoch {epoch + 1} average loss: {epoch_loss:.4f}\")\n",
    "\n",
    "    if (epoch + 1) % val_interval == 0:\n",
    "        if (epoch + 1) % val_interval * 2 == 0:\n",
    "            # track model params and gradients\n",
    "            track_params_dists(model, aim_run)\n",
    "            # THIS SEGMENT TAKES RELATIVELY LONG (Advise Against it)\n",
    "            track_gradients_dists(model, aim_run)\n",
    "\n",
    "        model.eval()\n",
    "        with torch.no_grad():\n",
    "            for index, val_data in enumerate(val_loader):\n",
    "                val_inputs, val_labels = (\n",
    "                    val_data[\"image\"].to(device),\n",
    "                    val_data[\"label\"].to(device),\n",
    "                )\n",
    "                # roi_size = (160, 160, 160)\n",
    "                roi_size = (96, 96, 32)\n",
    "\n",
    "                sw_batch_size = 4\n",
    "                val_outputs = sliding_window_inference(val_inputs, roi_size, sw_batch_size, model)\n",
    "\n",
    "                # tracking input, label and output images with Aim\n",
    "                output = torch.argmax(val_outputs, dim=1)[0, :, :, slice_to_track].float()\n",
    "\n",
    "                aim_run.track(\n",
    "                    aim.Image(val_inputs[0, 0, :, :, slice_to_track], caption=f\"Input Image: {index}\"),\n",
    "                    name=\"validation\",\n",
    "                    context={\"type\": \"input\"},\n",
    "                )\n",
    "                aim_run.track(\n",
    "                    aim.Image(val_labels[0, 0, :, :, slice_to_track], caption=f\"Label Image: {index}\"),\n",
    "                    name=\"validation\",\n",
    "                    context={\"type\": \"label\"},\n",
    "                )\n",
    "                aim_run.track(\n",
    "                    aim.Image(output, caption=f\"Predicted Label: {index}\"),\n",
    "                    name=\"predictions\",\n",
    "                    context={\"type\": \"labels\"},\n",
    "                )\n",
    "\n",
    "                val_outputs = [post_pred(i) for i in decollate_batch(val_outputs)]\n",
    "                val_labels = [post_label(i) for i in decollate_batch(val_labels)]\n",
    "                # compute metric for current iteration\n",
    "                dice_metric(y_pred=val_outputs, y=val_labels)\n",
    "\n",
    "            # aggregate the final mean dice result\n",
    "            metric = dice_metric.aggregate().item()\n",
    "            # track val metric\n",
    "            aim_run.track(metric, name=\"val_metric\", context={\"type\": loss_type})\n",
    "\n",
    "            # reset the status for next validation round\n",
    "            dice_metric.reset()\n",
    "\n",
    "            metric_values.append(metric)\n",
    "            if metric > best_metric:\n",
    "                best_metric = metric\n",
    "                best_metric_epoch = epoch + 1\n",
    "                print(\"aim name\",aim_run.name)\n",
    "                torch.save(model.state_dict(), os.path.join(root_dir, f\"{aim_run.name}_best_metric_model.pth\"))\n",
    "\n",
    "                best_model_log_message = f\"saved new best metric model at the {epoch+1}th epoch\"\n",
    "                aim_run.track(aim.Text(best_model_log_message), name=\"best_model_log_message\", epoch=epoch + 1)\n",
    "                print(best_model_log_message)\n",
    "\n",
    "            message1 = f\"current epoch: {epoch + 1} current mean dice: {metric:.4f}\"\n",
    "            message2 = f\"\\nbest mean dice: {best_metric:.4f} \"\n",
    "            message3 = f\"at epoch: {best_metric_epoch}\"\n",
    "\n",
    "            aim_run.track(aim.Text(message1 + \"\\n\" + message2 + message3), name=\"epoch_summary\", epoch=epoch + 1)\n",
    "            print(message1, message2, message3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'val_outputs' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "Cell \u001b[0;32mIn[1], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mval_outputs\u001b[49m\n",
      "\u001b[0;31mNameError\u001b[0m: name 'val_outputs' is not defined"
     ]
    }
   ],
   "source": [
    "val_outputs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "d1WMn7DFKkbV"
   },
   "outputs": [],
   "source": [
    "# finalize Aim Run\n",
    "aim_run.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "id": "ygo9hrWswCMR",
    "tags": []
   },
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'best_metric' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "Cell \u001b[0;32mIn[1], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtrain completed, best_metric: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[43mbest_metric\u001b[49m\u001b[38;5;132;01m:\u001b[39;00m\u001b[38;5;124m.4f\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mat epoch: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mbest_metric_epoch\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n",
      "\u001b[0;31mNameError\u001b[0m: name 'best_metric' is not defined"
     ]
    }
   ],
   "source": [
    "print(f\"train completed, best_metric: {best_metric:.4f} \" f\"at epoch: {best_metric_epoch}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'VNet'"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "run = aim.Run('dc7f4adf500345a78a890961')\n",
    "run.name"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "run.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "id": "jGhCvBg-wCMS"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Launching Aim ..."
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error: No such option: --force-init\n",
      "\n"
     ]
    }
   ],
   "source": [
    "%load_ext aim\n",
    "%aim up"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "zV7fV0CIwCMS"
   },
   "source": [
    "Once the above cell is executed, you will see the Aim UI running in output cell\n",
    "\n",
    "![Aim UI](https://user-images.githubusercontent.com/13848158/156644374-ba04963f-4f63-4fb9-b3ef-4d4e1ae521cc.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "KRw5pgLiwCMS"
   },
   "source": [
    "## Explore the loss and metric"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "MeX1wBjXwCMS"
   },
   "source": [
    "Compare metrics curves with Metrics Explorer - group and aggregate by any hyperparameter to easily compare training runs\n",
    "\n",
    "![Metrics Explorer](https://user-images.githubusercontent.com/13848158/156642623-8cf4911d-bed2-42b8-9f39-374f8d31def8.jpg)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "zGZ5vozGwCMS"
   },
   "source": [
    "## Compare and analyze model outputs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "mZIUa0aNwCMS"
   },
   "source": [
    "Compare models of different runs with input images and labels\n",
    "\n",
    "![Images Explorer](https://user-images.githubusercontent.com/13848158/156642615-c003fb3c-9f37-40f4-b499-ee6623db59ef.jpg)\n",
    "\n",
    "![Images Explorer](https://user-images.githubusercontent.com/13848158/156642618-0c0c380a-75aa-45b1-b431-149f735b3fde.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "uZKhs2DFwCMS"
   },
   "source": [
    "## Evaluation on original image spacings"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "Ws5wpqPlwCMT"
   },
   "outputs": [],
   "source": [
    "val_org_transforms = Compose(\n",
    "    [\n",
    "        LoadImaged(keys=[\"image\", \"label\"]),\n",
    "        EnsureChannelFirstd(keys=[\"image\", \"label\"]),\n",
    "        Spacingd(keys=[\"image\"], pixdim=(1.5, 1.5, 2.0), mode=\"bilinear\"),\n",
    "        Orientationd(keys=[\"image\"], axcodes=\"RAS\"),\n",
    "        ScaleIntensityRanged(\n",
    "            keys=[\"image\"],\n",
    "            a_min=-57,\n",
    "            a_max=164,\n",
    "            b_min=0.0,\n",
    "            b_max=1.0,\n",
    "            clip=True,\n",
    "        ),\n",
    "        CropForegroundd(keys=[\"image\"], source_key=\"image\"),\n",
    "    ]\n",
    ")\n",
    "\n",
    "val_org_ds = Dataset(data=val_files, transform=val_org_transforms)\n",
    "val_org_loader = DataLoader(val_org_ds, batch_size=1, num_workers=4)\n",
    "\n",
    "post_transforms = Compose(\n",
    "    [\n",
    "        Invertd(\n",
    "            keys=\"pred\",\n",
    "            transform=val_org_transforms,\n",
    "            orig_keys=\"image\",\n",
    "            meta_keys=\"pred_meta_dict\",\n",
    "            orig_meta_keys=\"image_meta_dict\",\n",
    "            meta_key_postfix=\"meta_dict\",\n",
    "            nearest_interp=False,\n",
    "            to_tensor=True,\n",
    "        ),\n",
    "        AsDiscreted(keys=\"pred\", argmax=True, to_onehot=2),\n",
    "        AsDiscreted(keys=\"label\", to_onehot=2),\n",
    "    ]\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "JTkKUwRGwCMT"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Metric on original image spacing:  0.9597647190093994\n"
     ]
    }
   ],
   "source": [
    "model.load_state_dict(torch.load(os.path.join(root_dir, \"best_metric_model.pth\")))\n",
    "model.eval()\n",
    "\n",
    "with torch.no_grad():\n",
    "    for val_data in val_org_loader:\n",
    "        val_data[\"image\"] = val_data[\"image\"].to(device)\n",
    "        val_data[\"label\"] = val_data[\"label\"].to(device)\n",
    "        roi_size = (160, 160, 160)\n",
    "        sw_batch_size = 4\n",
    "        val_data[\"pred\"] = sliding_window_inference(val_data[\"image\"], roi_size, sw_batch_size, model)\n",
    "        val_data = [post_transforms(i) for i in decollate_batch(val_data)]\n",
    "        val_outputs, val_labels = from_engine([\"pred\", \"label\"])(val_data)\n",
    "        # compute metric for current iteration\n",
    "        dice_metric(y_pred=val_outputs, y=val_labels)\n",
    "\n",
    "    # aggregate the final mean dice result\n",
    "    metric_org = dice_metric.aggregate().item()\n",
    "    # reset the status for next validation round\n",
    "    dice_metric.reset()\n",
    "\n",
    "print(\"Metric on original image spacing: \", metric_org)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "chILRaduwCMT"
   },
   "source": [
    "## Cleanup data directory\n",
    "\n",
    "Remove directory if a temporary was used."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "yuCFCxOcwCMT"
   },
   "outputs": [],
   "source": [
    "if directory is None:\n",
    "    shutil.rmtree(root_dir)"
   ]
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "name": "spleen_segmentation_3d_visualization.ipynb",
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  },
  "vscode": {
   "interpreter": {
    "hash": "916dbcbb3f70747c44a77c7bcd40155683ae19c65e1c03b4aa3499c5328201f1"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
